Data model for automated server configuration

ABSTRACT

The present invention is directed to a data model. The data model allows for modeling of all information relating to a computer network to be conveniently stored in a database in a manner which minimizes the effort associated with the addition of new devices to the network and maximizes software code reuse. The information relating to the network that may be modeled in the data model of the present invention include: software information, configuration information, monitoring information, hardware information, domain name server (DNS) information, network information, and information regarding queues that may be used by business logic, or intelligent agents in accessing and maintaining various portions of the network.

BACKGROUND

[0001] The present invention is directed to the provisioning, orconfiguration, of servers and other devices that provide support forsites that are hosted on the Internet, intranets, and othercommunication networks. More particularly, the present invention isdirected to a data model which can be implemented using a database andwhich serves as a repository for information pertinent to theprovisioning or configuration, of devices on a communications network.

[0002] The growing popularity and increasing accessibility of theInternet has resulted in its becoming a major source of information, aswell as a vehicle for inter-party transactions, in a variety ofenvironments. For instance, a number of different types of entities,from government agencies to school systems to organized groups, hostInternet and/or intranet websites that provide informational contentabout themselves and topics related to their interests. Similarly,commercial enterprises employ websites to disseminate information abouttheir products or services, as well as conduct commercial transactions,such as the buying and selling of goods. To support these activities,each website requires an infrastructure that stores the informationprovided by that site, responds to user requests for the information,and conducts other types of transactions appropriate to the site. Asignificant component of this infrastructure is a web server, whichreceives requests for information, retrieves it from the appropriatesources, and provides it to the requester. Websites which provide morecomplex services, such as online ordering, may also include applicationservers to support these additional functions.

[0003] In the case of relatively small entities, the infrastructure tosupport a website may be as simple as a single server, or even a portionof a server. Conversely, a large, popular website that consists ofseveral thousand pages of information and that is accessed quitefrequently may require numerous web servers to provide the necessarysupport. Similarly, websites for commercial entities, via whichtransactional operations are conducted, may employ multiple applicationservers to support transactions with a large number of customers at onetime.

[0004] The present invention is particularly directed to a data modelwhich supports a website by facilitating provisioning of the servers,allowing appropriate software necessary for the site to be identified,located, and transferred to a server, and generally defining all aspectsof the network. Such provisioning initially occurs when the website isfirst launched. Thereafter, there may be a need for furtherprovisioning, particularly in the case of a successful website, whenadditional servers must be added to support increased traffic, whichrequires accurate modeling of all aspects of the network. In anotherinstance, provisioning of the servers may be required as part of adisaster recovery operation, for example a sudden interruption in power,an attack by a hacker, or corruption of stored software and/or data. Insuch an instance, it would be necessary to have an accurate model of allaspects of the server to allow for accurate reproduction of the serverin need of recovery.

[0005] The provisioning of a server or other device that supports theoperation of a website involves several discrete steps. First, theappropriate operating system software must be loaded onto the device,followed by networking software that enables the device to communicateover a network. Thereafter, software applications that are required tosupport the particular site are loaded, such as database software forretrieving web pages, credit card processing software, order processingsoftware, etc. Finally, the content associated with the individual pagesof the website must be loaded. The order in which these variouscomponents are loaded onto the server can be quite critical, to ensurecompatibility of the various programs with one another.

[0006] In the past, the provisioning of web servers was often carriedout manually. In other words, each item of software was individuallyloaded onto the server by a person having responsibility for that task.One problem with such an approach is the fact that it consumes asignificant amount of time. For a relatively large site that issupported by multiple servers, the provisioning could take several hoursor days to be completed, thereby delaying the time before the site canbe launched and/or upwardly scaled to accommodate increasing traffic.Another, and perhaps more significant, limitation associated with themanual provisioning of devices is the lack of repeatability in thesoftware configurations. More particularly, whenever manual operationsare involved in the installation of software, there is always thepossibility of human error, such as the failure to install one of therequired components, or the loading of the various items of software inthe wrong order. Each of these types of errors can result inmisoperation or total failure of the website, and can be extremely timeconsuming to discover and correct.

[0007] To overcome some of these limitations, various techniques havebeen developed which permit software to be automatically deployed tocomputers. However, these techniques are limited in the types ofenvironments in which they can be utilized. For example, in anenterprise where all of the users interact with the same legacyapplications, a “cookie cutter” type of approach can be used to deploythe software. In this approach, every computer can have the same,standard configuration. Once the configuration has been developed,therefore, it can be packaged into a fixed format, and automaticallydisseminated to all of the appropriate computers.

[0008] However, this type of automated deployment is not effective forsituations in which computers, such as servers, need to be customized toaccommodate the individual requirements of varied users. One example ofsuch a situation is a data center which may house the infrastructure forhundreds of different websites. The hardware and software requirementsfor these sites will vary among each site. For instance, differentwebsite developers may employ different platforms for the sites, therebynecessitating various combinations of operating systems and applicationprograms on the servers of the respective sites. Furthermore, differenttypes of equipment may be utilized for the sites, thereby adding to thecomplexity of the provisioning process. In some cases, the same site mayrequire a variety of different hardware devices, operating systems andapplication programs to handle all of the different services provided bythat site. Known approaches to automate software deployment are notadapted to the needs of these types of situations. Rather, because ofthe flexibility that is required to accommodate a differentconfiguration of hardware and/or software for each site, manualprovisioning is still being practiced to a large extent, with all of itsattendant disadvantages.

[0009] It is desirable, therefore, to provide a data model to supportthe automated provisioning of servers and other devices that supportvarious types of services, such as the hosting of an Internet orintranet website. Such a data model should exhibit sufficientflexibility to accommodate the differing needs of the providers of suchservices, while maintaining repeatability, and hence reliability, in theprovisioning process.

SUMMARY

[0010] In accordance with the present invention, the foregoingobjectives are achieved by way of a data model to support the automatedprovisioning of servers and other devices that support various types ofservices, such as hosting of an Internet or intranet website. This datamodel provides relationships between various software, configuration,monitoring, hardware, network, domain name server (DNS), and queuesentities. By representing the model in an entity relationship form, thepresent invention facilitates allowing access to and configuration ofeach aspect of a database which implements the model and thus, to eachaspect of the network. This, in turn, allows for automated provisioningby devices located remotely on the network with which the data model ofthe present invention is associated.

[0011] The central database which implements the data model of thepresent invention contains all information that is relevant to theprovisioning of devices contained on the network. This informationincludes information regarding the hardware devices used on the network,the software components that make up the various software rolesinstalled on a device, logical network information such as addresses,configuration information of the various software, hardware, and networkcomponents, domain name information, and the like. Additionally,information regarding monitoring status of the network, and devicescontained thereon is provided for. Additionally, an interface forvarious network agents associated with each host on the network forreporting configuration regarding devices connected to the network,reporting version information, upgrading software contained thereon, andso forth, is provided for.

[0012] According to exemplary embodiments of the present invention, thedata model allows for modeling of all information relating to a computernetwork to be conveniently stored in a database in a manner whichminimizes the effort associated with the addition of new devices to thenetwork and maximizes software code reuse. This is accomplished bydesigning a model wherein each of the model's entities interrelate andare characterized by variable sets which provide enough specificity toaccurately characterize the network (or portion thereof) that the modelis intended to capture. At the same time, however, these entities andtheir respective variables are sufficiently generic to readily permitthe addition of, e.g., new software, new hardware devices, newmonitoring techniques and equipment, new configurations, etc., withoutrequiring the rewriting of software code which relies upon the model andthe database implementation thereof. Moreover, the schema describedherein facilitate the reuse of existing software code to interact withthe database model regarding newly added software, hardware,configurations, etc. by virtue of this design aspect of the model.

[0013] Various segments of models according to exemplary embodiments ofthe present invention are separately implementable.

[0014] These and other features of the present invention are explainedin greater detail hereinafter with reference to an exemplary embodimentof the invention illustrated in the accompanying drawings, wherein likecomponents are designated by like reference numerals.

BRIEF DESCRIPTION OF THE DRAWINGS

[0015]FIG. 1 is block diagram of one embodiment of the hardwareconfiguration for website hosting.

[0016]FIG. 2 is a block diagram of services associated with a network,in connection with one embodiment of the present invention.

[0017]FIG. 3 is a block diagram of a website maintenance system,associated with one embodiment of the present invention.

[0018]FIG. 4 is a block diagram of roles used in connection with oneembodiment of the present invention.

[0019]FIG. 5 is a role-centric entity relationship diagram, used inconnection with one embodiment of the present invention.

[0020]FIG. 6 is a service-centric entity relationship diagram, used inconnection with one embodiment of the present invention.

[0021]FIG. 7 is a block diagram illustrating the relationship betweenvarious elements of one embodiment of the present invention.

[0022]FIG. 8 is a block diagram illustrating the relationship betweenvarious elements of one embodiment of the present invention.

[0023]FIG. 9 is a block diagram illustrating the relationship betweenunits, bundles, and roles, in accordance with one embodiment of thepresent invention.

[0024]FIG. 10 is an entity relationship diagram illustrating therelationship between units, roles, and packages, in accordance with oneembodiment of the present invention.

[0025]FIG. 11 is an entity relationship diagram illustrating therelationship between various aspects of the data model, in accordancewith one embodiment of the present invention.

[0026]FIG. 12 is an entity relationship diagram illustrating therelationship between various entities relating to software within thedata model of one embodiment of the present invention.

[0027]FIG. 13 is an entity relationship diagram illustrating therelationship between various entities relating to configuration withinthe data model of one embodiment of the present invention.

[0028]FIG. 14 is an entity relationship diagram illustrating therelationship between various entities relating to monitoring within thedata model of one embodiment of the present invention.

[0029]FIG. 15 is an entity relationship diagram illustrating therelationship between various entities relating to hardware within thedata model of one embodiment of the present invention.

[0030]FIG. 16 is an entity relationship diagram illustrating therelationship between various entities relating to DNS capabilitieswithin the data model of one embodiment of the present invention.

[0031]FIG. 17 is an entity relationship diagram illustrating therelationship between various entities relating to network within thedata model of one embodiment of the present invention.

[0032]FIG. 18 is an entity relationship diagram illustrating therelationship between various entities relating to queues within the datamodel of one embodiment of the present invention.

DETAILED DESCRIPTION

[0033] To facilitate an understanding of the principles of the presentinvention, it is described hereinafter with reference to its applicationin a specific embodiment. Specifically, the data model of the presentinvention will be described within the context of a database whichimplements the model, which database is used in a computer network forthe automated provisioning, and remote configuration and maintenance, ofmultiple computer devices connected to the network. It will beappreciated, however, that the implementation of the invention that isdescribed hereinafter is merely exemplary, and that the invention canfind practical application in any environment where it is desirable tomodel a database associated with a server on a computer network of anykind.

[0034]FIG. 1 illustrates, in block diagram form, the hardwareconfiguration of one embodiment of the present invention. In FIG. 1, atypical, three-tier web hosting system 100, which may be implementedusing the data model of the present invention, is illustrated. Therein,databases 102A, 102B are accessible to the web servers 104A, 104B, andthe application servers 106A, 106B of the three-tier web hosting system100 illustrated in FIG. 1. In the three-tier system 100 illustrated inFIG. 1, redundancy is used, whereby a duplicate web server 104B,application server 106B, and database 102B are each used as backups forthe primary web server 104A, application server 106A, and database 102A,respectively.

[0035] Each of the web servers receives and handles requests received byway of a network. Requests received by way of such a network may requirefunctionality from various applications. When this is the case, the webserver 104A, 104B forwards the requests to the application server 106A,106B, which may then process the application, and also has access to thedatabase 102A, 102B. The application server 106A, 106B may, therefore,require information regarding software, configuration, monitoring,hardware, the network, DNS, or queues, which may be contained within thedatabase 102A, 102B. This information is modeled by one embodiment ofthe present invention to allow for rapid and convenient access by theapplication server 106A, 106B to this information contained within thedatabase 102A, 102B.

[0036] Network requests are received by the web server 104A, 104B by wayof a firewall 108, and are distributed by the load balancer 110. Thefirewall 108 provides security from any malicious network forces outsidethe local access of the three-tier web hosting system, 100. Any remotehost, or agent, which is outside the locality of the three-tier webhosting system 100 may be required to authenticate itself to thefirewall 108 in order to access, maintain, monitor, or reconfigure theweb server 104A, 104B, the application server 106A, 106B, or thedatabase 102A, 102B. The load balancer 110 distributes the networktransactions received by way of the firewall 108.

[0037] It should be noted that a common practice is to insert anadditional firewall between the application servers 106A, 106B and thedatabases 102A, 102B. While many people feel that this providesadditional security, this redundancy is often not required if thefirewall 108 is correctly configured. However, it should be noted thatthe present invention could be utilized in a system wherein a secondfirewall is used between the application servers 106A, 106B, and thedatabases 102A, 102B. The three-tier web hosting system 100 illustratedin FIG. 1 is a robust architecture, which is suitable for use in almostany business situation. Thus, the data model of the present inventionfinds utility in almost any business situation.

[0038]FIG. 2 is a block diagram illustrating the relationship of variousservices provided by a web hosting system in which the present inventioncan be implemented. The relationship model 200 illustrated in FIG. 2comprises a variety of functional components, which relate to a webserver 202, and an application server 204 connected to a network, suchas the Internet 205. Functions relating to the web server 202 and theapplication server 204 include a software maintenance component 206, anda monitoring component 208. As illustrated by the bi-directional arrowsin FIG. 2, the web server 202 and application server 204 may accessinformation, and functionality, possessed by the software maintenancecomponent 206 and the monitoring component 208. Likewise, the softwaremaintenance component 206 and monitoring component 208 may provide theweb server 202 and application server 204 with information, and mayaccess information contained on the servers 202, 204.

[0039] The web server 202, which is in communication with theapplication server 204, may request functionality to be performed byvarious applications. This functionality may be subdivided into twocategories: website content and personalized information. Websitecontent is represented by the content feed component 210, andpersonalized information is represented by the personalization component212, which are both in communication with the application server. Boththe content feed component 210 and the personalization component 212 maybe monitored by the monitoring component 208, and may receive softwaremaintenance support from the software maintenance component 206. Themanner in which the monitoring component 208, the software maintenancecomponent 206, the network 205, the hardware devices 202, 204, and theconfiguration components 210, 212 are related is defined by the datamodel of the present invention.

[0040] According to an embodiment of the present invention, the webserver 202 may comprise a layer 7 proxy server. The monitoring component208 monitors the status of the hardware components, such as the webserver 202 and application server 204, and monitors the content feed 210and the personalization component 212. In response to this monitoring,the web server 202 or application server 204 may request the softwaremaintenance component 206 to provide maintenance, which may be in theform of software updates, to any of the hardware components 202, 204,the content feed component 210, or the personalization component 212.The content feed component 210 may communicate any information which isfed into the system 200, while the personalization component 212provides data and information that is specific to a particular sitehosted by a web server, or layer 7 proxy server 202. One example ofinformation that is fed into the system 200 by way of the content feedcomponent 210 is streaming data from an external source, such as stockmarket ticker data.

[0041] In FIG. 3, a system 300 is illustrated, which is suitable forautomated provisioning, remote access and maintenance of networkdevices. Another system in which models according to the presentinvention can be implemented is described in U.S. patent applicationSer. No. ______, entitled “AUTOMATED PROVISIONING FRAMEWORK FOR INTERNETSITE SERVERS” to Raymond Suorsa et al. filed on an even date herewith,the disclosure of which is incorporated here by reference. A database302 can be used to implement the data model according to exemplaryembodiments of the present invention. This database 302 may reside onany large scale storage device. For example, suitable storage devicesupon which the database associated with the data model of the presentinvention may be stored include redundant array of independent disks(RAID) systems, such as those provided by EMC Corporation of Hopkinton,Mass., or other similar devices. This database 302 may be accessed bythe various agents 304A, 304B, 304C, whose level of access may bedetermined by a hierarchy of trust component 306. Additionally, a userinterface 308 may be provided for the convenience of a user in accessinginformation contained within the database 302, or software containedwithin the software file system 310. The determination of the level ofaccess granted by the user interface 308 is made by the hierarchy oftrust component 306. Access determination information is stored by theaccess determination component 312, which is accessible by way ofdatabase 302. This is accomplished by using a hierarchical filestructure in which specific access is determined and operated only tothose users to whom it should be granted. This is accomplished by userauthentication via a lightweight directory access protocol (LDAP) serverthat authenticates users within particular domain names that map tospecific customer accounts. The hierarchy of trust component 306interprets the data related to it from the database 302, andcommunicates this data, or the interpretation thereof to the variousagents 304A, 304B, 304C, and/or the user interface 308.

[0042] In FIG. 4, a block diagram of a customer role package 400 isillustrated. Such customer role packages are used to providerepeatability, and eliminate the need for manual configuration bydesignating software components to be installed on a particular deviceconnected to a network. Roles as illustrated in FIG. 4 define thefunctionality of device, and may be considered to define the role, orpart, the device is to play within the network.

[0043] In one embodiment of the invention, the software components to beinstalled (i.e., the customer role package 400) are divided into threetypes of software roles that are related to the frequency with whichthey are likely to change or be upgraded. These roles include anapplication role 402, a customer code role 404, and an operating system(OS) role 406. The OS role 406 contains the software that has the lowestprobability of being changed during the life cycle of the particulardevice on which it is installed. This role consists of the OS of thedevice, plus other general software, such as the intelligent agents304A, 304B, 304C, illustrated in FIG. 3. The customer code role 404contains content specific to, and provided by, a customer, and thereforecontains software that can change on a regular basis for a website orother network site. Examples of software contained within the customercode role 404 might include hypertext markup language (HTML) pages, Javaserver pages (JSP), active server pages (ASP), image files, and othercontent that is regularly updated by a website host. The applicationrole 402 consists of software components that change relativelyinfrequently when compared to software of the customer code role 404,but perhaps more often than software contained within the OS role 406.The hierarchical structure of such a customer role package 400 isdescribed hereinafter in connection with FIG. 9.

[0044] An entity relationship diagram of a role-centric network model500 is illustrated in FIG. 5. The role-centric model 500 is used forrelating devices 502 connected to a network to software roles 504. Thisis accomplished by way of a role instance 506, which is used as a placeholder for devices until a device 502 is present, and connected to thenetwork by way of which the role 504 may communicate the softwarecontained therein to the devices 502. This role-centric model 500allowed for a role instance 506 that reserved IP addresses, or othernetwork addresses, and allowed for general network configuration withoutthe devices being attached to the network. Thus, the IP addresses usedby the various devices connected to the network may be maintained, andneed not be reassigned each time a device is reconnected to the networkat a different location.

[0045] Entity relationship diagrams, such as the entity relationshipdiagram of the role-centric model 500, show the relationship betweenvarious entities, which are represented by rectangular blocks andlabeled to indicate their significance connected by way of connectionlines. Each connection line has a single connection on one end andmultiple connections on the opposite end, indicating a one-to-manyrelationship. This means that a single entity is related to multipleentities on the end of the connection line having multiple connections.Thus, the devices entity 502 relates to the role instance entity 506 ina one-to-many fashion, meaning that each device entity 502 is directlyrelated to many role instance entities 506. Additionally, the roleentity 504 is related to the role instance entity 506 in a one-to-manyrelationship. Hence, each role entity 504 is related to multiple roleinstances 506.

[0046]FIG. 6 illustrates an improved approach to the traditionalrole-centric network model approach illustrated in FIG. 5. In FIG. 6, aservice-centric network model 600 that allows one to monitor serviceinformation related to devices 602 associated with a computer network isshown. This type of model is accomplished, as illustrated in the entityrelationship diagram of FIG. 6, by relating devices entities 602 toservice instance entities 604 in a one-to-many relationship. The serviceinstance entities 604 are then related to services 606 in a many-to-onerelationship. The services entity 606 is related to the roles entity 608in a one-to-many relationship. The service instance entities 604 act asa relationship table between the devices 602 and the services 606. Theadvantages of the service-centric model 600, which is employed by oneembodiment of the present invention include all of the advantages of therole-centric model 500, illustrated in FIG. 5, as the network may beconfigured using place holders instead of devices connected to thenetwork. The service-centric model has the additional advantage ofrelating the roles to services, which are an important quantity forcustomers to monitor and configure. An embodiment of the presentinvention utilizes a service-centric model, such as the one illustratedin FIG. 6.

[0047] The block diagram in FIG. 7 illustrates a service-centricconcept, relating services 702 to various other quantities associatedwith the network that in accordance with an embodiment of the presentinvention. The services 702 are centrally related to each of: thedevices 704, the configuration component 706 of the network, themonitoring 708 of the network, hardware, and software, and the software710, such as the OS software, packages, and roles hereinbeforedescribed. By way of the service-centric system illustrated in FIG. 7,the monitoring component 708 may monitor the software component,ensuring that each of the software roles is properly maintained, and upto date.

[0048]FIG. 8 illustrates a similar configuration, wherein services arecentrally related to a configuration component 706, a monitoringcomponent 708, and software 710. However, the service-centricrelationship illustrated in FIG. 8 differs from the one illustrated inFIG. 7 in that the services 702 are not related directly to devices.Rather, the services 702 are related directly to a service instance 802,which allows for the configuration of an IP address by a configurationdevice. This service instance 802 is related to devices 804 upon whichan IP is configured. Thus, although the services 702 in FIG. 8 are notdirectly related to devices, as is the case in FIG. 7, in FIG. 8, theservices 702 are related to a service instance 802 which allows for theconfiguration of IP addresses until a device 804 may be configured withan IP address, and acts as a place holder for devices to be connectedand utilize the IP addresses.

[0049]FIG. 9 illustrates the hierarchy of individual software roles.Role 902 of FIG. 9 comprises a combination of software bundles andunits. The software units 904, 906, 908 each comprise multiple softwareinstallation packages. One example of such software installationpackages that may be contained within units 904, 906, 908 includessoftware bundles for the Linux OS, such as Redhat package manager (RPM)files. Such packages would be saved in a file having a name using theextension RPM, such as file_x.rpm.

[0050] Several units, such as units 904, 906, make up a bundle, 910. Inaddition, a bundle 912 may be made up of a combination of units, such asunit 908, and other bundles, such as bundle 910. These bundles are thencombined into a role, such as role 902. This role 902 is stored as alist of packages, such as RPMs, to be installed on a device, and theorder in which those packages are to be installed. These roles may,therefore, be used to rebuild a machine automatically, should a criticalfailure occur. Also, the role 902 illustrated in FIG. 9 may comprise acustomer role package, such as the package 400 illustrated in FIG. 4,which contains three roles: the application role 402, the customer coderole 404, and the OS role 406.

[0051]FIG. 10 illustrates the same relationships shown in FIG. 9 in theform of an entity relationship diagram. In FIG. 10, roles entities 1002are related to units entities 1004 and packages entities 1006. Thesethree groups of entities are related by way of two relationship tables1008, 1010. The roles entities 1002 represent a role, such as role 902of FIG. 9, or a group of roles. These roles entities 1002 are made up ofmultiple units entities 1004, which represent units, such as units 904,906, 908 of FIG. 9. This is illustrated by the one-to-many relationshipbetween the units entities 1004 and the relationship table 1008, whichis related in a one-to-many relationship with the relationship table1010. This relationship table 1010 is related to the roles entities 1002in a many-to-one relationship. Thus, the roles represented by the rolesentities 1002 may be made up of multiple units, which are represented bythe units entities 1004. Additionally, the units represented by theunits entities 1004 may be made up of multiple packages, such as theRPMs discussed above. These packages are represented by the packagesentities 1006, which are related in a one-to-many relationship with therelationship table 1008 which is in turn related to the units entities1004 in a many-to-one relationship. The packages 1006 are illustrated ashaving a one-to-many relationship with other packages, which indicatesthat any single package may contain multiple packages.

[0052] The relationship diagram illustrated in FIG. 10 is a particularlyuseful way to illustrate the relationship between the various componentsof a data model. As can be seen, much information can be gleaned fromthe entity relationship diagram of FIG. 10, and less space is requiredto express the same idea illustrated in FIG. 9. The entity relationshipdiagram also allows for convenient access to each aspect of the databasebeing modeled for quick, accurate, and repeatable configuration of thatdatabase.

[0053] An entity relationship diagram of the data model according to oneembodiment of the present invention is illustrated in FIG. 11. In FIG.11, the data model 1100 is represented as having multiple entitiesrelated to one another. Each of these entities illustrated in FIG. 11represents a group of entities and therefore FIG. 11 represents the datamodel on a macro level only. Each of the entities represented in thedata model 1100 of FIG. 11 is broken into its components, andillustrated in more detail in subsequent figures, which are denoted inFIG. 11.

[0054] The data model 1100 in FIG. 11 relates the following entities:software 1102, configuration 1104, monitoring 1106, hardware 1108, DNS1110, network 1112, and queues 1114. The software entities 1102represent various software packages to be installed in devices,applications, and operating system software of the various networkdevices. The software entities 1102 are directly related to theconfiguration entities 1104, the hardware entities 1108, and the networkentities 1112. As shown in FIG. 11, the software entities 1102 have anoptional many-to-one relationship with the hardware entities 1108, andshares a combination of many-to-one and one-to-many relationships withboth the configuration entities 1104 and the network entities 1112.

[0055] As described above, the configuration entities 1104 are relatedto the software entities 1102 with a many-to-one and one-to-manyrelationship, and similarly share a many-to-one and one-to-manyrelationships with the hardware entities 1108. Additionally, theconfiguration entities are related to the monitoring entities 1106 in aone-to-many relationship. The configuration entities 1104 relate to boththe DNS entities 1110 and the network entities 1112 in a many-to-onerelationship. The relationship with the DNS entities 1110 is optional,as indicated by the broken line connecting the configuration entities1104 and the DNS entities 1110. These configuration entities 1104represent the configuration of various network addresses, softwarepackages, and device addresses.

[0056] The monitoring entities 1106 are related to the configurationentities 1104 as described above, and to the hardware entities 1108 inmany-to-one relationships. The monitoring entities 1106 monitor thestatus and condition of entities within the configuration entities group1104 and the hardware entities group 1108.

[0057] The hardware entities 1108 represent multiple hardware devices incommunication with a network. These entities are related to the softwareentities 1102 in an optional one-to-many relationship, and as describedabove to the monitoring entities 1106 in a one-to-many relationship.Additionally, as described above, the hardware entities 1108 are relatedin both a many-to-one and one-to-many relationship with theconfiguration entities 1104.

[0058] The DNS entities 1110 represent all DNS transfers, queries,entries, configurations, and posts. They are optionally related to theconfiguration entities 1104 in a one-to-many relationship, and to thenetwork entities 1112 in an optional many-to-one relationship.

[0059] The network entities 1112 are related to the software entities1102 in a combination of many-to-one and one-to-many relationships, andto the configuration entities 1104 in a one-to-many relationship.Additionally, the network entities 1112 are optionally related to theDNS entities 1110 in a one-to-many relationship.

[0060] A group of entities called the queues entities 1114 are alsoillustrated in the database model 1100 of FIG. 11. However, the queuesentities are not illustrated as having a direct relationship with any ofthe other entities of this model 1100. A relationship between the queuesentities 1114 and the other entities within the data model 1100 iscreated by either business logic contained outside of the data model, orby intelligent agents, such as the agents 304A, 304B, 304C illustratedin FIG. 3. This type of relationship will be described hereinafter withgreater detail.

[0061] FIGS. 12-18 illustrate in greater detail the entities of the datamodel 1100 illustrated in FIG. 11. In each of these figures, multipleentities that make up the entities represented in FIG. 11, will be shownas entity relationship diagrams. In this type of diagram, theone-to-many or many-to-one relationships between the entities will beillustrated in the same manner as in FIG. 11. Optional relationshipswill be illustrated by way of broken lines. Connections to entitieswithin other groups of entities (i.e. written other entities of the datamodel 1100 in FIG. 11), will be indicated by lines at the edge of thepage with a designation indicating the figure upon which thoserelationships are continued.

[0062] Each of the entities contained within FIGS. 12-18 have a set ofvariables associated with them, specific values of which characterizeinstances of each of the entities and their functionalities. Thesevariables will be described hereinafter in tables. In these tablesidentifying variables associated with each entity, a variable name,variable definition, variable type, and an indication regarding whetherthe variable is required by the entity or optional to the entity will begiven. Those skilled in the art will appreciate that the referenceherein to “required” or “optional” with respect to the individualvariables in each table is purely exemplary and that, in other exemplaryembodiments which are not explicitly described herein, the status ofthese variables as “required” or “optional” may change. Additionally, anindication of the primary key of each entity of each variable set willbe given by an asterisk immediately following the variable name. In somecases, multiple primary keys will be indicated. Generally, the primarykey of a particular entity must be contained within each of the entitiesto which that entity relates and is the main variable associated withthe entity. When the primary key of an entity is contained withinanother entity to which the first entity relates, it acts as a type ofpointer, referring to the first entity.

[0063] Software 1102

[0064] In FIG. 12, a detailed entity relationship diagram of thesoftware entities 1102 is illustrated. Each of the entities within thisdiagram interrelate and are characterized by variable sets which provideenough specificity to accurately characterize the software portion ofthe network that the model is intended to capture. At the same time,however, these entities and their respective variables are sufficientlygeneric to readily permit the addition of, e.g., new software packages,without requiring the rewriting of software code which relies upon themodel and the database implementation thereof.

[0065] Units Entities 1202

[0066] The units entities 1202 represent the software units described inconnection with FIG. 10. The variable set associated with the unitsentities 1202 is set forth below in Table 1. TABLE 1 VARIABLE SET OFUNITS ENTITIES 1202 VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPEOPTIONAL UNIT_ID* Unit Number R identification number ACCT_ID AccountNumber R identification number PLATFORM_ID Platform Number Oidentification number UNIT_NAME Unit name Character R UNIT_TYPE Unittype Character R UNIT_VERSION Unit version Number R UNIT_DESC Unitdescription Character O UNIT_LOC Unit location Character R CREATED_BYCreated by Character R CREATE_DT Create date Date R MODIFIED_BY Modifiedby Character O MODIFIED_DATE Date modified Date O INSTALL_FLAGSInstallation flags Character O REMOVE_FLAGS Remove flags Character O

[0067] The units entities 1202 relate to unit monitor types entities1204, unit contents entities 406, application role units 1208, unitpackages entities 1212, account role units entities 1214, device poolrole units entities 1216 and one-to-many relationships. The one-to-manyrelationship between the units entities 1202 and the unit conflictsentities 1206 includes dual one-to-many relationships. Also, the unitsentities 1202 may be related by the many-to-one relationship 1238illustrated in FIG. 12 with entities within the network entities 1112which is illustrated in detail in FIG. 17. Specifically, the unitsentities 1202 is related by this many-to-one relationship with theaccounts entities 1702 of FIG. 17. An optional many-to-one relationshipmay exist between units entities 1202 and the platforms entities 1210.

[0068] Unit Monitor Types Entities 1204

[0069] The unit monitor types entities 1204 indicate the type ofmonitoring associated with the units related to the unit entities 1202.The variable set associated with the unit monitor types entities 1204 isset forth below in Table 2. TABLE 2 VARIABLE SET OF MONITOR TYPESENTITIES 1204 VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPEOPTIONAL UNIT_ID* Unit Number R identification number MONITOR_TYPEMonitor type Character R MONITOR_NAME* Monitor name Character RSTART_LOC Start location Character O STOP_LOC Stop location Character O

[0070] As mentioned above, the unit monitor types entities 1204 relatesto the units entities 1202 in a many-to-one relationship.

[0071] Unit Conflicts Entities 1206

[0072] The unit conflicts entities 1206 are used to identify anypotential conflicts between units related to the units entities 1202.The variable set associated with the unit conflicts entities 1206 is setforth below in Table 3. TABLE 3 VARIABLE SET OF UNIT CONFLICTS ENTITIES1206 VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONALUNIT_ID Unit identification number Number R CONFLICTING_UNIT_IDConflicting unit identification Number R number CONFLICT_DESC Conflictdescription Character O

[0073] As previously mentioned, the unit conflicts entities 1206 relateto the units entities 1202 in dual many-to-one relationships.

[0074] Application Role Units Entities 1208

[0075] The application role units entities 1208 relate application rolesentities 1236 with units entities 1202, much in the same manner thatroles are related to units in the relationships described in connectionwith FIG. 10. The variable set associated with the application roleunits entities 1208 is set forth below in Table 4. TABLE 4 VARIABLE SETOF APPLICATION ROLE UNITS ENTITIES 1208 VARIABLE VARIABLE REQUIRED/VARIABLE DEFINITION TYPE OPTIONAL APP_ROLE_ID* Application role Number Ridentification number UNIT_ID* Unit Number R identification numberINSTALL_ORDER Installation order Number R DATE_CREATED Date control DateO CREATED_BY Created by Character O

[0076] The application role units entities 1208 relate to the unitsentities 1202 in a many-to-one relationship, as discussed above.Additionally, the application role units entities 1208 relate to theapplication roles entities 1236 in a many-to-one relationship.

[0077] Platforms Entities 1210

[0078] Platforms entities 1210 indicate the platforms of the variouscomputer devices connected to the network, upon which the units,packages, and roles run. The variable set associated with the platformsentities 1210 is set forth below in Table 5. TABLE 5 VARIABLE SET OFPLATFORMS ENTITIES 1210 VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITIONTYPE OPTIONAL PLATFORM_ID* Platform Number R identification numberPLATFORM_NAME Platform name Character R PLATFORM_DESC Platformdescription Character O

[0079] The platforms entities 1210 may have multiple optionalone-to-many relationships with other entities illustrated in FIG. 12.These entities with which the platforms entities 1210 may be related inan optional one-to-many relationship include the units entities 1202, aspreviously discussed, the account roles entities 1224, and theapplication roles entities 1236. Additionally, the platforms entities1210 relates in a many-to-one fashion with the device pool rolesentities 1218 and the packages entities 1220.

[0080] Unit Packages Entities 1212

[0081] The unit packages entities 1212 serve to relate the unitsrepresented by the units entities 1202 with the packages represented bythe packages entities 1220, in much the same manner as described inconnection with FIG. 10. The variable set associated with the unitpackages entities 1212 is set forth below in Table 6. TABLE 6 VARIABLESET OF UNIT PACKAGES ENTITIES 1212 VARIABLE VARIABLE REQUIRED/ VARIABLEDEFINITION TYPE OPTIONAL PKG_ID* Package Number R identification numberUNIT_ID* Unit Number R identification number INSTALL_ORDER InstallationNumber R order EFF_BEG_DT* Effective Date R beginning date EFF_END_DTEffective ending date Date O

[0082] The unit package entities 1212 have many-to-one relationshipswith the units entities 1202, as previously discussed, and the packagesentities 1220.

[0083] Account Role Units Entities 1214

[0084] Account role units entities 1214 are used in relating the unitsrepresented by the units entities 1202 with the account roles of theaccount roles entities 1224 in a similar manner as described in FIG. 10using relational tables. The variable set associated with the accountrole units entities 1214 is set forth below in Table 7. TABLE 7 VARIABLESET OF ACCOUNT ROLE UNITS ENTITIES 1214 VARIABLE VARIABLE REQUIRED/VARIABLE DEFINITION TYPE OPTIONAL ACCT_ROLE_ID* Account role Number Ridentification number UNIT_ID* Unit Number R identification numberINSTALL_ORDER Installation order Number R DATE_CREATED Date created DateR CREATED_BY Created by Character R

[0085] The account role units entities 1214 have many-to-onerelationships with the unit entities 1202, as previously indicated, andthe account roles entities 1224.

[0086] Device Pool Role Units Entities 1216

[0087] The device pool role units entities 1216 serve to relate devicescontained in device pools, which are associated with the device poolroles entities 1218, with the various software units associated with theunits entities 1202 that are necessary to properly configure thedevices. The variable set associated with the device pool role unitsentities 1216 is set forth below in Table 8. TABLE 8 VARIABLE SET OFDEVICE POOL ROLE UNITS ENTITIES 1216 VARIABLE VARIABLE REQUIRED/VARIABLE DEFINITION TYPE OPTIONAL DEVICE_POOL_ID* Device pool Number Ridentification number UNIT_ID* Unit identification Number R numberINSTALL_ORDER Installation order Number R DATE-CREATED Date created DateO CREATED_BY Created by Character O

[0088] The device pool role units 1216 have many-to-one relationshipswith the units entities 1202, as previously indicated, and the devicepool roles entities 1218.

[0089] Device Pool Roles Entities 1218

[0090] Device pool poles entities 1218 relate the device pool packages,the device roles, and the platforms of the various devices with thedevice pool role units associated with the device pool role unitsentities 1216. The variable set associated with the device pool rolesentities 1218 is set forth below in Table 9. These variables relate tothe device pool role, or the software associated with a particulardevice pool. Thus, the variable STATUS, indicated below in Table 9, mayindicate the status of a device role. TABLE 9 VARIABLE SET OF DEVICEPOOL ROLES ENTITIES 1218 VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITIONTYPE OPTIONAL DEVICE_POOL-ID* Device pool Number R identification numberPLATFORM_ID Platform Number R identification number DEVICE_POOL_NAMEDevice pool name Character R STATUS Device pool Character R role statusDEVICE_POOL_DESC Device pool Character O descriptionDEVICE_POOL_ROLE_VERSION Device pool Number R role version EFF_BEG_DTEffective Date R beginning date CREATED_BY Created by Character RCREATE_DT Date created Date R VISIBLE Visibility Character O

[0091] The device pool roles entities 1218 are related to the devicepool role units entities 1216 in a one-to-many relationship aspreviously discussed. Also, the device pool roles entities 1218 arerelated to the platforms entities 1210 in a many-to-one relationship, aspreviously discussed. In addition to these relationships, the devicepool roles entities 1218 are related to the device roles entities 1226,and the device pool packages entities 1234 in one-to-many relationships.

[0092] Packages Entities 1220

[0093] The packages entities 1220 represent the various softwarepackages, such as those described in connection with FIG. 10. Thevariable set associated with the packages entities 1220 is set forthbelow in Table 10. TABLE 10 VARIABLE SET OF PACKAGES ENTITIES 1220VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL PKG_ID*Package Number R identification number PLATFORM_ID Platform Number Ridentification number ACCT_ID Account Number R identification numberPKG_NAME Package name Character R PKG_TYPE Package type Character RPKG_VERSION Package version Number R PKG_DESC Package descriptionCharacter O EFF_BEG_DT Effective beginning Date R date CREATED_BYCreated by Character R CREATE_DT Date created Date R

[0094] The packages entities 1220 are related to the platforms entities1210 in a many-to-one relationship, and the unit packages entities 1212in a one-to-many relationship, as discussed above. Additionally, thepackages entities 1220 is related to the account packages of entities1222, the included packages entities 1230, the application packagesentities 1232, and the device pool packages 1234 in one-to-manyrelationships. The relationship between the packages entities 1220 andthe included packages entities 1230 is a dual one-to-many relationship.Also, the packages entities 1220 are related by way of the many-to-onerelationship 1240 to an entity within the network entities 1112 shown inFIG. 17. Specifically, the packages entities 1220 relates to theaccounts entities 1702 of FIG. 17 by way of a many-to-one relationship1214.

[0095] Account Packages Entities 1222

[0096] The account packages entities 1222 serves to relate the packagesentities 1220 with the account roles entities 1224, in a manner similarto the manner in which packages are related to roles in FIG. 10. Thevariable set associated with the account packages entities 1222 is setforth below in Table 11. TABLE 11 VARIABLE SET OF ACCOUNT PACKAGESENTITIES 1222 VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPEOPTIONAL ACCT_ROLE_ID* Account role Number R identification numberPKG_ID* Package Number R identification number INSTALL_ORDERInstallation order Number R EFF_BEG_DT* Effective beginning Date R dateEFF_END_DT Effective ending date Date O

[0097] The account packages entities 1222 relate to the packagesentities 1220 as previously described, and the account roles entities1224 in many-to-one relationships.

[0098] Account Roles Entities 1224

[0099] The account roles entities 1224 represent the various softwareroles associated with particular customer accounts. The variable setassociated with the account roles entities 1224 is set forth below inTable 12. These variables relate to the account roles, or softwarepackages for each account. For example, the STATUS variable may indicatethe status of an account role as active, inactive, deprecated,experimental, and so forth. TABLE 12 VARIABLE SET OF ACCOUNT ROLESENTITIES 1224 VARI- VARIABLE ABLE REQUIRED/ VARIABLE DEFINITION TYPEOPTIONAL ACCT_ROLE_ID* Account role Number R identification numberACCT_ID Account Number R identification number ACCT_ROLE_NAME Accountrole Character R name STATUS Account role Character R statusACCT_ROLE_VERSION Account role Number R version ACCT_ROLE_DESC Accountrole Character O description EFF_BEG_DT Effective Date R beginning dateCREATED_BY Created by Character R CREATE_DT Date created Date RPLATFORM_ID Platform Number O identification number

[0100] As previously mentioned, the account roles entities 1224 relatesin one-to-many relationships with the account role units entities 1214and the account packages entities 1222. Also, as previously described,the account roles entities 1224 may optionally relate to the platformsentities 1210 in a many-to-one relationship. The account roles entities1224 may also optionally relate to the device roles entities 1226 in aone-to-many relationship. The account roles entities 1224 may alsorelate, by way of a many-to-one relationship 1242, to an entity withinthe network entities 1112 illustrated in FIG. 17. Specifically, theaccount roles entities 1224 relates to the account entities 1702illustrated in FIG. 17 by way of a many-to-one relationship 1242.

[0101] Device Roles Entities 1226

[0102] The device roles entities 1226 represent the various softwareroles associated with each device connected to the network. The variableset associated with the device roles entities 1226 is set forth below inTable 13. TABLE 13 VARIABLE SET OF DEVICE ROLES ENTITIES 1226 VARI-VARIABLE ABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL DVC_ID DeviceNumber O identification number DVC_ROLE_ID* Device role Number Ridentification number CUST_TIER_ID Customer tier Number O identificationnumber DEVICE_POOL_ID Device pool Number R identification numberACCT_ROLE_ID Account role Number O identification number APP_ROLE_IDApplication role Number O identification number DVC_ROLE_NAME Devicerole name Character R STATUS Device role status Character R EFF_BEG_DTEffective beginning Date R date CREATED_BY Created by Character RCREATE_DT Date created Date R

[0103] As mentioned before, the device roles entities 1226 relate to thedevice pool roles entities 1218, and optionally to the account rolesentities 1224 in many-to-one relationships. The device roles entitiesalso has optional many-to-one relationships with the application rolesentities 1236, the customer tiers entities 1708 of FIG. 17 by way ofrelationship 1246, and the devices entities 1512 of FIG. 15 by way ofrelationship 1248. The device roles entities 1226 also relates in dualone-to-many and a single many-to-one relationship with elements of theconfiguration entities 1104 illustrated in FIG. 13. Specifically, thedevice roles entities 1226 relate to the device role configurationentities 1320 of FIG. 13 and the device role IP host entities 1308 ofFIG. 13 in one-to-many relationships 1256, 1260, respectively. Thedevice roles entities 1226 also relates to the status entities 1322 ofFIG. 13 by a many-to-one relationship 1258.

[0104] Dependent Roles Entities 1228

[0105] The dependent roles entities 1228 relate to the application rolesrepresented by the application roles entities 1236. The dependent rolesentities 1228 serve to identify various application roles that aredependent upon other roles, and to describe this dependency. Thevariable set associated with the dependent roles entities 1228 is setforth below in Table 14. TABLE 14 VARIABLE SET OF DEPENDENT ROLESENTITIES 1228 VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPEOPTIONAL APP_ROLE_ID Application role identification Number R numberDEPENDENT_UPON_ROLE_ Dependent upon role number Number R IDDEPENDENCY_DESC Description of dependency Character R

[0106] The dependent roles entities relate in dual many-to-onerelationships with the application roles entities 1236.

[0107] Included Packages Entities 1230

[0108] The included packages entities 1230 is related to the packagesentities 1220 and identifies packages that are included within aparticular installation package, and the order in which it is to beinstalled. The variable set associated with the included packagesentities 1230 is set forth below in Table 15. TABLE 15 VARIABLE SET OFINCLUDED PACKAGES ENTITIES 1230 VARI- VARIABLE ABLE REQUIRED/ VARIABLEDEFINITION TYPE OPTIONAL PKG_ID* Package Number R identification numberINCLUDED_PKG_ID* Included package Number R identification numberINSTALL_ORDER Installation order Number R EFF_BEG_DT Effective beginningDate R date EFF_END DT Effective ending Date O date

[0109] The included packages 1230 are related to the packages entities1220 in dual many-to-one relationships, as described above.

[0110] Application Packages Entities 1232

[0111] The application packages entities 1232 relates the packagesrepresented by the packages entities 1220 and the application rolesrepresented by the application roles entities 1236. The relationship ofthe roles in packages is similar to the manner in which the roles inpackages are related in FIG. 10. The variable set associated with theapplication packages entities 1232 is set forth below in Table 16. TABLE16 VARIABLE SET OF APPLICATION PACKAGES ENTITLES 1232 VARIABLE VARIABLEREQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL APP_ROLE_ID* Applicationrole Number R identification number PKG_ID* Package Number Ridentification number INSTALL_ORDER Installation order Number REFF_BEG_DT Effective beginning Date R date EFF_END_DT Effective endingdate Date O

[0112] The application packages entities 1232 relate to the packagesentities 1220 as previously described, and the application rolesentities 1236 in many-to-one relationships.

[0113] Device Pool Packages Entities 1234

[0114] The device pool packages entities 1234 serve to relate the devicepool roles represented by the device pool roles entities 1218 with thepackages represented by the packages entities 1220. This occurs in asimilar manner as described in connection with FIG. 10. The variable setassociated with the device pool packages entities 1234 is set forthbelow in Table 17. TABLE 17 VARIABLE SET OF DEVICE POOL PACKAGESENTITIES 1234 VARI- VARIABLE ABLE REQUIRED/ VARIABLE DEFINITION TYPEOPTIONAL DEVICE_POOL_ID* Device pool Number R identification numberPKG_ID* Package Number R identification number INSTALL_ORDERInstallation order Number R EFF_BEG_DT Effective beginning Date R dateEFF_END_DT Effective ending date Date O

[0115] The device pool packages entities 1234 relate to the packagesentities 1220 on the device pool roles entities 1218 in many-to-onerelationships, as described above.

[0116] Application Roles Entities 1236

[0117] The application roles entities 1236 represent the variousapplication software roles. The variable set associated with theapplication roles entities 1236 is set forth below in Table 18. Thesevariables relate to the application role. For example, the STATUSvariable may give an indicator that an application role is active,inactive, experimental, deprecated, supported, unsupported, and soforth. TABLE 18 VARIABLE SET OF APPLICATION ROLES ENTITIES 1236 VARI-VARIABLE ABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL APP_ROLE_ID*Application role identification Number R number ROLE_NAME Role nameCharacter R ROLE_DESC Role description Character R APP_ROLE_VERSIONApplication role version Number R EFF_BEG_DT Effective beginning dateDate R STATUS Application role status Character R CREATED_BY Created byCharacter R CREATE_DT Date created Date R PLATFORM_ID Platformidentification number Number O SRVC_ID Service identification numberNumber O

[0118] As previously described, the application roles entities 1236relates in a one-to-many relationship with the application role unitsentities 1208, the application packages entities 1232, and optionallythe device roles entities 1226. Additionally, the application rolesentities 1236, as indicated above, relates to the dependent rolesentities 1228 in dual one-to-many relationships. The application rolesentities 1236 also optionally relates in a many-to-one relationship withthe platforms entities 1210. In addition to these relationshipspreviously described, the application roles entities 1236 relates in aone-to-many relationship 1244 with the data center tiers 1724 of FIG. 7.The application roles entities 1236 also relates in a one-to-manyrelationship 1254 with the role configurations entities 1316 of FIG. 13.The application roles entities 1236 also relates to the status entities1322 of FIG. 13, and optionally to the services entities 1314 of FIG. 13by way of many-to-one relationships 1252, 1250, respectively.

[0119] Multiple entities within the software entities 1102 relate toentities illustrated in various other figures. For example, therelationships 1238, 1240, 1242, 1244, 1246 relate to various entitieswithin the network entities 1112, which is illustrated in FIG. 17. Theserelationships have been labeled in FIG. 17 to indicate the directrelationship between entities of the software entities 1102 in FIG. 12and the network entities 1112 in FIG. 17. Additionally, an optionalrelationship 1248 with the hardware entities 1108, which is illustratedin FIG. 15, is also indicated. Further, the relationships 1250, 1252,1254, 1256, 1258 relate to entities within the configuration entities1104, which is illustrated in FIG. 13.

[0120] Configuration 1104

[0121] The entities of the configuration entities 1104 are illustratedin FIG. 13. These configuration entities 1104 represent variousconfiguration information relating to software, hardware, the network,and the like. Those entities which are not illustrated as having adirect relationship with any of the other entities are used by businesslogic, or intelligent agents, for various purposes. Like the softwareentities from FIG. 12, each of the entities within this diagraminterrelate and are characterized by variable sets which provide enoughspecificity to accurately characterize the software portion of thenetwork that the model is intended to capture. At the same time,however, these entities and their respective variables are sufficientlygeneric to readily permit the addition of, e.g., new configurations,without requiring the rewriting of software code which uses the modeland the database implementation thereof.

[0122] Manufacturing Model Entities 1302

[0123] The manufacturing model entities 1302 is used to identify amanufacturing model identification number, manufacturing name, modelname, and manufacturing model description. For example, if a Sun Spore 5server is used by the present invention, the manufacturer name would beSun, and the model name would be Spore 5. The description could be anyindication that it is a server. The variable set associated with themanufacturing model entities 1302 is set forth below in Table 19. TABLE19 VARIABLE SET OF MANUFACTURING MODEL ENTITIES 1302 VARIABLE VARIABLEREQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL MFG_MODEL_ID* Manufacturingmodel Number R identification number MFG Manufacturing name Character RMODEL Model name Character R MFG_MODEL_DESC Manufacturing modeldescription Character O

[0124] The manufacturing model entities 1302 does not directly relate toany of the other entities illustrated in FIG. 13. This group of entities1302 is used by business logic associated with the present invention todetermine manufacturer name, model name, and manufacturer descriptionfor each of the devices used on the network associated with the presentinvention.

[0125] Component Objects Entities 1304

[0126] The component objects entities 1304 provide an indication of whattable a particular value is stored in. For example, a location of thetable in which values relating to the specific hardware or softwareobject may be obtained by way of the component object entities 1304. Thevariable set associated with the component objects entities 1304 is setforth below in Table 20. TABLE 20 VARIABLE SET OF COMPONENT OBJECTSENTITIES 1304 VARI- VARIABLE ABLE REQUIRED/ VARIABLE DEFINITION TYPEOPTIONAL TABLE_NAME* Table name Character R ID_NAME Identification nameCharacter R SEQUENCE_NAME Sequence name Character O FATHER_ID_NAMEFather identification Character O name AUTOGENERATE_ID AutogenerateCharacter R identification

[0127] The component objects entities 1304 does not directly relate toany of the entities illustrated in FIG. 13. This group of entities 1304is used by business logic associated with the present invention todetermine which tables should be used to look up values relating tospecific objects on the network associated with the present invention.The objects whose values may be found by way of the component objectsentities 1304 may be hardware objects or software objects.

[0128] Conduits Entities 1306

[0129] The conduits entities 1306 relate to the devices of the networkassociated with the present invention. These conduits entities 1306relate to conduits by which information may be passed through afirewall. In essence, the conduits through a firewall constitute holesthrough a firewall by which devices may communicate from outside of thefirewall to devices contained within the firewall. Thus, the conduitsentities 1306 define the source and destination addresses that involvedin communications across the firewall. The present invention alsomaintains a history, which records all of the traffic across thefirewall. The variable set associated with the conduits entities 1306 isset forth below in Table 21. TABLE 21 VARIABLE SET OF CONDUITS ENTITIES1306 VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONALDVC_ID* Device Number R identification number SOURCE* Source Character RDESTINATION* Destination Character R PORT Port Number O PROTOCOLProtocol Character R CONDUIT_DESC Conduit description Character O

[0130] The conduits entities 1306 relate to the devices entities 1512 ofFIG. 15 in a many-to-one relationship 1332.

[0131] Device Role IP Host Entities 1308

[0132] The device role IP host entities 1308 act a place holder for thevarious devices of the network, and allow IP addresses to be assignedwithout having a specific device connected to the network. The IPaddresses of the devices used on the network associated with the presentinvention may be of a physical type or a logical type. This means thatthe IP address may physically relate to the specific device connected tothe network, or may be a logical IP address, which does not correspondto the actual physical IP address, but relates the same device. Thevariable set associated with the device role IP host entities 1308 isset forth below in Table 22. TABLE 22 VARIABLE SET OF DEVICE ROLE IPHOST ENTITIES 1308 VARI- VARIABLE ABLE REQUIRED/ VARIABLE DEFINITIONTYPE OPTIONAL DVC_ROLE_ID Device role Number R identification numberIP_ADDRESS* IP address Character R INTERFACE_SLOT Interface slotCharacter O INTERFACE_IP_TYPE Interface IP type Character R HOST_NAMEHost name Character O DNS_HOST-ID DNS Host Number O identificationnumber EFF_END_DT Effective Date O ending date EFF_BEG_DT Effective DateR beginning date

[0133] The device role IP host entities 1308 relates to the interface IPtype entities 1310 in a many-to-one relationship. Also, as previouslydiscussed, the device role IP host entities 1308 relates to the deviceroles entities 1226 of FIG. 12 in a many-to-one relationship 1260. Thedevice role IP host also relates in a many-to-one relationship 1340 tothe IP addresses entities 1730 of FIG. 17. The device role IP hostentities 1308 may optionally relate to the DNS hosts entities 1604 ofFIG. 16 in a many-to-one relationship 1336.

[0134] Interface IP Type Entities 1310

[0135] The interface IP type entities 1310 indicate the type ofinterface associated with each IP address. The variable set associatedwith the interface IP type entities 1310 is set forth below in Table 23.TABLE 23 VARIABLE SET OF INTERFACE IP TYPE ENTITIES 1310 VARIABLEVARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL INTERFACE_IP_TYPE*Interface IP type Character R INTERFACE_IP_TYPE-DESC Interface IP typedescription Character R

[0136] The interface IP type entities 1310 is related to the device roleIP host entities 1308 in a one-to-many relationship.

[0137] Virtual IPs Entities 1312

[0138] The virtual IPs entities 1312 relate to virtual IP addresses,which allow for virtual IP addressing, and allow for multiple machinesto have the same IP address, or group of addresses mapped to them by wayof a load balancer. A variable called STICKY may be set to require thateach time a specific device accesses an IP address it is mapped to thesame server by the load balancer. This “sticky” routing allows cookiesto be used that were placed on the device by that server. The variableset associated with the virtual IPs entities 1312 is set forth below inTable 24. TABLE 24 VARIABLE SET OF VIRTUAL IPS ENTITIES 1312 VARI-VARIABLE ABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL DVC_ID DeviceNumber R identification number IP_ADDRESS* IP address Character R STICKYSticky routing Character R ALGORITHM_TYPE Algorithm type Character O

[0139] The virtual IPs entities 1312 relates to the VIP groups entities1424 of FIG. 14 in a one-to-many relationship 1328, the devices entities1512 of FIG. 15 in a many-to-one relationship 1330, and to the IPaddresses entities 1730 of FIG. 17 in a many-to-one relationship 1338.

[0140] Services Entities 1314

[0141] The services entities 1314 relate application roles to servicesfor the convenience of users and network customers. This allows acustomer to view and configure application roles in terms of servicesoffered, which is a useful quality to customers. The variable setassociated with the services entities 1314 is set forth below in Table25. TABLE 25 VARIABLE SET OF SERVICES ENTITIES 1314 VARIABLE VARIABLEREQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL SRVC_ID* Serviceidentification Number R number SRVC_NAME Service name Character RSRVC_DESC Service description Character O

[0142] The services entities 1314 may optionally relate to theapplication roles entities 1236 of FIG. 12 in a one-to-many relationship1250, as discussed above.

[0143] Role Configurations Entities 1316

[0144] The role configurations entities 1316 relate to the actualconfigurations of software roles. These role configuration associatedwith the configurations entities 1316 may include such information asthe types of components to be used, such as specific memory types, CPUtypes, video card types. Also, the quantity of components to be used maybe indicated, along with the component size and type. For example, if anIntel processor is used as a CPU, the quantity may be designated as twoor three, and so on depending upon the number of the processor occupiedby a particular customer. The component size associated with such a CPUwould be expressed in megahertz, indicating the processing scheme. Theconfiguration type would be expressed in a brand name, or perhaps aminimum specification requirement. The variable set associated with therole configurations entities 1316 is set forth below in Table 26. TABLE26 VARIABLE SET OF ROLE CONFIGURATIONS ENTITIES 1316 VARIABLE VARIABLEREQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL APP_ROLE_ID* Applicationrole Number R identification number COMPNT_TYPE* Component typeCharacter R QUANTITY Quantity Number R COMPNT_SIZE Component sizeCharacter O CONFIG_TYPE Configuration type Character R

[0145] The role configuration entities 1316 relate to the component typeentities 1324 in a many-to-one relationship, and, as previouslydiscussed, the application roles entities 1236 of FIG. 12 in amany-to-one relationship 1254.

[0146] Device Roles History Entities 1318

[0147] The device roles history entities 1318 is a history of all rolesexecuted by a particular device. That is, the history of all softwarethat has ever been employed by a specific device is indicated in thedevice roles history entities 1318. Thus, many of the entries within thedevice roles history entries 1318 are similar to those of the deviceroles entities 1226. The variable set associated with the device roleshistory entities 1318 is set forth below in Table 27. TABLE 27 VARIABLESET OF DEVICE ROLES HISTORY ENTITIES 1318 VARIABLE VARIABLE REQUIRED/VARIABLE DEFINITION TYPE OPTIONAL DVC_ROLE_ID Device role identificationnumber Number O CUST_TIER_ID Customer tier identification Number Onumber DEVICE_POOL_ID Device pool identification number Number OACCT_ROLE_ID Account role identification Number O number APP_ROLE_IDApplication role identification Number O number DVC_ROLE_PROFILE_IDDevice role profile identification Number O number DVC_ROLE_NAME Devicerole name Character O DVC_ROLE_BEG_DT Device role beginning date Date RDVC_ROLE_END_DT Device role ending date Date R

[0148] The device roles history entities 1318 cannot relate directly toany other entities illustrated on FIG. 13. The information containedwithin these entities 1318 is used by business logic associated with thepresent invention. The type of operation that may be performed bybusiness logic using the device roles history entities 1318 may include,for example, a software rollback when software contained on a particulardevice has failed.

[0149] Device Role Configuration Entities 1320

[0150] The device role configuration entities 1320 relate to theconfiguration of various software roles. These device role configurationentities 1320 are a way in which generic name-value pairs may bedefined, which are associated with device roles of the presentinvention. One instance in which this might be used is if a particulardevice has four processors, but a particular customer is only paid touse two processors of that server, a name-value pair may be used toindicate these specific device role configurations. Thus, a generickeyname may be generated associated with the two processors that havebeen paid for by a customer. The values associated with the name-valuepair for which the name is expressed in the device role configurationentities 1320 is expressed within the device role configuration valuesentities 1326. The variable set associated with the device roleconfiguration entities 1320 is set forth below in Table 28. TABLE 28VARIABLE SET OF DEVICE ROLE CONFIGURATION ENTITIES 1320 VARI- VARIABLEABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL DVC_ROLE_ID Device roleNumber R identification number KEY_NAME Key name Character RDVC_ROLE_CONFIG_ID* Device role Number R configuration identificationnumber

[0151] The device role configuration entities 1320 is related to adevice role configuration values entities 1326 in a one-to-manyrelationship, and to the device roles entities 1226 of FIG. 12 in amany-to-one relationship 1256.

[0152] Status Entities 1322

[0153] The status entities 1322 provide status reports regarding varioussoftware and hardware configurations. The variable set of the statusentities 1322 is set forth below in Table 29. TABLE 29 VARIABLE SET OFSTATUS ENTITIES 1322 VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITIONTYPE OPTIONAL STATUS* Status Character R STATUS_DESC Status descriptionCharacter R

[0154] The status entities 1322 relate to the application roles entities1236, and the device roles entities 1226, both of FIG. 12, inone-to-many relationships 1252, 1258, respectively. Also, the statusentities 1322 relate to the devices entities 1512 of FIG. 15 in aone-to-many relationship 1324.

[0155] Component Type Entities 1324

[0156] The component type entities 1324 is related to the various typesof components associated with the devices of the network. The variableset associated with the component type entities 1324 is set forth belowin Table 30. TABLE 30 VARIABLE SET OF COMPONENT TYPE ENTITIES 1324 VARI-VARIABLE ABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL COMPNT_TYPE*Component type Character R COMPNT_TYPE_DESC Component type Character Rdescription

[0157] The component type entities 1324 relate to the roleconfigurations entities 1316 in a one-to-many relationship.

[0158] Device Role Configuration Values Entities 1326

[0159] The device role configuration values entities 1326 relate tovalues associated with the role configurations, which are represented bythe device role configuration entities 1320. The device roleconfiguration values 1326 are the value portion of the main-value pairassociated with the device roles, for which the names are expressedwithin the device role configuration entities 1320, as previouslydescribed. The variable set associated with the device roleconfiguration values entities 1326 is set forth below in Table 31. TABLE31 VARIABLE SET OF DEVICE ROLE CONFIGURATION VALUES ENTITIES 1326 VARI-VARIABLE ABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONALDVC_ROLE_CONFIG_ID* Device role Number R configuration identificationnumber CONFIG_VALUE Configuration Character R value TEXT_ORDER* Textorder Number R

[0160] The device role configuration values entities 1326 relate to thedevice role configuration entities 1320 in a many-to-one relationship.

[0161] As discussed in connection with FIG. 12, the various entitieswithin the configuration entities 1104 of FIG. 13 are related toentities within the software entities 1102 of FIG. 12. The relationships1250, 1252, 1254, 1256, 1258, 1260 are indicated as continuing on FIG.12. Additionally, relationship 1328 is continued on FIG. 14,relationships 1330, 1332, 1334 are continued on FIG. 15, optionalrelationship 1336 may be continued on FIG. 16, and relationships 1338,1340 are continued on FIG. 17. Each of these relationships is designatedwith the same numeral in the figure in which it continues, andillustrates the entity with which it relates directly.

[0162] Monitoring 1106

[0163] The entities of the monitoring entities 1106 are illustrated inFIG. 14 and an entity relationship diagram form. These entities relateto components that maintain the network and various hardware andsoftware components of the networks, as well as configurationinformation. As with the aforementioned entities, the monitoringentities are described in terms of specific interrelations and arecharacterized by variable sets which provide enough specificity toaccurately characterize the software portion of the network that themodel is intended to capture. At the same time, however, these entitiesand their respective variables are sufficiently generic to readilypermit the addition of, e.g., new monitoring functions, withoutrequiring the rewriting of software code which relies upon the model andthe database implementation thereof.

[0164] Autonomous System Map Entities 1402

[0165] The autonomous system map entities are used to create anautonomous system map of the entire system associated with the presentinvention. The variable set associated with the autonomous system mapentities 1402 is set forth below in Table 32. TABLE 32 VARIABLE SET OFAUTONOMOUS SYSTEM MAP ENTITIES 1402 VARIABLE VARIABLE REQUIRED/ VARIABLEDEFINITION TYPE OPTIONAL AS_MAP_ID* Autonomous Number R system mapidentification number AS_NUM Autonomous system Number O numberAS_DESCRIPTOR Autonomous system Character O description AS_NAMEAutonomous system Character O name CREATE_DT Date created Date RCREATED_BY Created by Character R MODIFIED_DT Date modified Date OMODIFIED_BY Modified by Character O

[0166] The autonomous system map entities 1402 of the monitoringentities 1106 illustrated in FIG. 14 are not directly related to anyother entities of FIG. 14. However, the information contained within theautonomous system map entities 1402 is used by business logic andintelligent agents network in ascertaining system map informationregarding the network of the present invention.

[0167] Device Request Classes Entities 1404

[0168] The device request classes entities 1404 are used to relatedevice classes, and requests associated with those devices. The deviceclasses associated with the device request classes entities may includea particular group of devices, such as load balancers, routers, orservers. The variable set associated with the device request classesentities 1404 is set forth below in Table 33. TABLE 33 VARIABLE SET OFDEVICE REQUEST CLASSES ENTITIES 1404 VARI- VARIABLE ABLE REQUIRED/VARIABLE DEFINITION TYPE OPTIONAL DVC_ID* Device Number R identificationnumber REQUEST_CLASS_ID* Request class Number R identification numberPOLL_FREQUENCY Poll frequency Number R of class

[0169] The device request classes entities 1404 are related in amany-to-one relationship with the request class entities 1406. Thedevice request classes entities portion of four are related in amany-to-one relationship 1428 with the devices entities 1512 of FIG. 15.

[0170] Request Class Entities 1406

[0171] The request class entities 1406 may be optionally related torequest class variables entities 1408. The request class entities 1406define suitable names for device classes used in connection with thepresent invention. The variable set associated with the request classentities 1406 is set forth below in Table 34. TABLE 34 VARIABLE SET OFREQUEST CLASS ENTITIES 1406 VARI- VARIABLE ABLE REQUIRED/ VARIABLEDEFINITION TYPE OPTIONAL REQUEST_CLASS_ID* Request class Number Ridentification number REQUEST_CLASS_NAME Request Character R class name

[0172] The request class entities 1406 may be optionally related to therequest class variables entities 1408 in a one-to-many relationship.

[0173] Request Class Variables Entities 1408

[0174] The request class variables entities 1408 act as a relationshiptable between the request class entities 1406 and the SNMP variableentities 1420. The request class variables entities identify allvariables collected for specific request class, and identify a foreignkey to the request class table which relates the request classes to SNMPvariables within the SNMP variable entities 1420. The variable setassociated with the request class variables entities 1408 is set forthbelow in Table 35. TABLE 35 VARIABLE SET OF REQUEST VARIABLES ENTITIES1408 VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONALREQUEST_CLASS_VAR_ID* Request class variable Number R identificationnumber REQUEST_CLASS-ID Request class Number O identification numberSNMP_VAR_ID SNMP variable Number O identification number

[0175] The request class variables entities 1408 may be optionallyrelated in many-to-one relationships with the request class entities1406, as discussed above, and to the SNMP variables entities 1420.

[0176] Manager Applications Entities 1410

[0177] The manager applications entities 1410 is a list of internalapplications that defines all applications allowed to communicate withdevices and access these devices, such as software applications. Thevariable set associated with the manager applications entities 1410 isset forth below in Table 36. TABLE 36 VARIABLE SET OF MANAGERAPPLICATIONS ENTITIES 1410 VARIABLE VARIABLE REQUIRED/ VARIABLEDEFINITION TYPE OPTIONAL MGR_APP_ID* Manager application Number Ridentification number APP_NAME Application name Character R CREATE_DTDated created Date R MODIFIED_DT Date modified Date O MODIFIED_BYModified by Character O

[0178] The manager applications entities 1410 are related to the monitorACLs entities 1412 and the device application configuration entities1414.

[0179] Monitor ACLs Entities 1412

[0180] The monitor ACLs entities 1412 allows for monitoring of accesscontrol list (ACLs) associated with devices of the present invention.The variable set associated with the monitor ACLs entities 1412 is setforth below in Table 37. TABLE 37 VARIABLE SET OF MONITOR ACLS ENTITIES1412 VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONALMON_ACL_ID* Monitor ACL Number R identification number MGR_APP_IDMonitor application Number R identification number SET_NAME Set nameCharacter O SET_NUM Set number Number O CREATE_DT Date created Date OMODIFIED_DT Date modified Date O MODIFIED_BY Modified by Character O

[0181] The monitor ACLs entities 1412 are related to the managerapplications entities 1410 in a many-to-one relationship, as discussedabove. The monitor ACLs entities 1412 are also related to the deviceACLs entities 1418 and the ACL entries entities 1422 in one-to-manyrelationships.

[0182] Device Application Configuration Entities 1414

[0183] The device application configuration entities 1414 relate deviceswith manager applications, and provide a mechanism whereby theconfiguration of device applications may be monitored. The deviceapplication configuration entities 1414 are a name-value pair for deviceapplications configured on the network. A date or text value may beentered and associated with the devices, depending upon the specificdevice type. The variable set associated with the device applicationconfiguration entities 1414 is shown below in Table 38. TABLE 38VARIABLE SET OF DEVICE APPLICATION CONFIGURATION ENTITIES 1414 VARI-VARIABLE ABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL DVC_ID* DeviceNumber R identification number MGR_APP_ID* Manager application Number Ridentification number CREATE_DT Date created Date R CONFIG_TXT_VALConfiguration Character O text value CONFIG_DT_VAL Configuration Date Odate value CONFIG_NAME* Configuration name Character R CREATED_BYCreated by Character R

[0184] The device application configuration entities is related inmany-to-one relationships with the manager applications entities 1410,as previously discussed, and with the devices entities 1512 of FIG. 15by way of relationship 1430.

[0185] Device Authorization Entities 1416

[0186] The device authorization entities 1416 are used for authorizinguse of devices by way of user names, passwords, and the like. The deviceauthorization entities 1416 describe specific device authorizationsrequired by the simple network management protocol (SNMP), used inconnection with one embodiment of the present invention. The deviceauthorization entities 1416 allow for current and future, or nextvalues, of user names and passwords to be read, written, and trapped(having an alert sent regarding an erroneous user name or password). Thevariable set associated with the device authorization entities 1416 isset forth below in Table 39. TABLE 39 VARIABLE SET OF DEVICEAUTHORIZATION ENTITIES 1416 VARIABLE VARIABLE REQUIRED/ VARIABLEDEFINITION TYPE OPTIONAL DVC_AUTH_ID* Device authorization Number Ridentification number DVC_ID Device Number R identification numberMGR_APP_ID Manager Application Number R identification number USERNAMEUser name Character O VIEW_PASSWD View password Character O ENABLEPASSWD Enable password Character O CURR_V1_READ Read current valueCharacter O CURR_V1_ Write current value Character O WRITE CURR_V1_TRAPSend alert for Character O current value NEXT_V1_READ Read next valueCharacter O NEXT_V1_ Write next value Character O WRITE NEXT_V1_TRAPSend alert for Character O next value CREATE_DT Date created Date OMODIFIED_DT Date modified Date O MODIFIED_BY Modified by Character O

[0187] The device authorization entities 1416 relate to the device ACLsentities 1418 in a one-to-many relationship and to the devices entities1512 of FIG. 15 in a many-to-one relationship 1426.

[0188] Device ACLs Entities 1418

[0189] The device ACLs entities 1418 are used to provide the deviceauthorizations entities 1416 with the correct access control lists(ACLs). The variable set associated with the device ACLs entities 1418is set forth below in Table 40. TABLE 40 VARIABLE SET OF DEVICE ACLSENTITIES 1418 VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPEOPTIONAL MON_ACL_ID* Monitor ACL Number R identification numberDVC_AUTH_ID* Device Authorization Number R identification numberMODIFIED_DT Date modified Date O MODIFIED_BY Modified by Character O

[0190] The device ACLs entities 1418 are related to the monitor ACLsentities 1412 and the device authorizations entities 1416 in many-to-onerelationships, as previously discussed.

[0191] SNMP Variables Entities 1420

[0192] The SNMP variables entities 1420 provide information regardingvariables associated with the simple network management protocol (SNMP)associated with the devices connected to the network of the presentinvention. Generally, standard SNMP variables are assigned to specificdevices or objects and a unique object identification must be determinedfor internal purposes. The variable set associated with the SNMPvariables entities 1420 is set forth below in Table 41. TABLE 41VARIABLE SET OF SNMP VARIABLES ENTITIES 1420 VARIABLE VARIABLE REQUIRED/VARIABLE DEFINITION TYPE OPTIONAL SNMP_VAR_ID* SNMP Variable Number RIdentification Number DOTTED_OID Character R VAR_NAME Variable nameCharacter R Identification Number

[0193] The SNMP variables entities 1420 may optionally be related to therequest class variables entities 1408 in a one-to-many relationship.

[0194] ACL Entries Entities 1422

[0195] The ACL entries entities 1422 relate to the entries on the accesscontrol lists associated with the various devices connected to thenetwork of the present invention. The variable set associated with theACL entries entities 1422 is set forth below in Table 42. TABLE 42VARIABLE SET OF ACL ENTRIES ENTITIES 1422 VARIABLE VARIABLE REQUIRED/VARIABLE DEFINITION TYPE OPTIONAL MON_ACL_ID* Monitor ACL Number Ridentification number PERMISSION* Permission Character R IP_ADDRESS* IPAddress Character R NET MASK Net Mask Name Character O TCPIP_PORT TCP/IPCharacter O

[0196] ACL entries entities 1422 is related in a many-to-onerelationship with the monitor ACLs entities 1412.

[0197] VIP Groups Entities 1424

[0198] The Virtual IP (VIP) groups entities 1424 relate to devicesgrouped into VIP groups. The VIP groups entities 1424 are used by loadbalancers within the system to route single IP addresses to multipleservers by way of VIP mapping. An interface identification number isprovided, and an interface port may be specified. The variable setassociated with the VIP groups entities 1424 is shown below in Table 43.TABLE 43 VARIABLE SET OF GROUPS ENTITIES 1424 VARIABLE VARIABLEREQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL VIP_GROUP_ID* VIP groupNumber R Identification Num- ber VIP_IP_ADDRESS VIP IP address CharacterR GROUP_NAME Group name Character O VIP_PORT VIP port Character OIF_IP_ID Interface IP Number R Identification num- ber IF_PORT Interfaceport Character O

[0199] The VIP groups entities 1424 are related to the virtual IPsentities 1312 of FIG. 13 in a many-to-one relationship 1428, and to theinterface IPs entities 1524 of FIG. 15.

[0200] Various relationships 1426, 1428, 1430, 1432 in FIG. 14 areindicated as relating entities within the monitoring entities 1106, withentities illustrated on FIG. 15, associated with the hardware entities1108. Additionally, as discussed in connection with FIG. 13, therelationship 1328 from FIG. 13 relates to the VIP groups elements 1424,as shown in FIG. 14.

[0201] Hardware 1108

[0202] The entities illustrated in FIG. 15 are part of the hardwareentities 1108, and are illustrated in entity relationship diagram form.Each of these entities is described below. Each of the entities withinthis diagram interrelate and are characterized by variable sets whichprovide enough specificity to accurately characterize the hardwareportion of the network that the model is intended to capture. At thesame time, however, these entities and their respective variables aresufficiently generic to readily permit the addition of, e.g., newhardware devices, without requiring the rewriting of software code whichrelies upon the model and the database implementation thereof andpermitting the reuse of existing software code to interact with thedatabase model regarding the newly added hardware device.

[0203] Memory Components Entities 1502

[0204] The memory components entities 1502 describe various memorycomponents of the devices related to the device entities 1512. Thevariable set associated with the memory components entities 1502 is setforth below in Table 44. TABLE 44 VARIABLE SET OF MEMORY COMPONENTSENTITIES 1502 VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPEOPTIONAL DVC_ID Device Identification Number Number R MEM_COMPT_ID*Memory Component Number R Identification Number QUANTITY Quantity ofmemory components Character R MEM_TYPE Memory type Character RMEM_LOCATION Memory location Character O EFF_BEG_DT Effective beginningdate Date R EFF_END_DT Effective ending date Date O

[0205] The memory components entities 1502 relates to the devicesentities 1512 in a many-to-one relationship.

[0206] Storage Components Entities 1504

[0207] The storage components entities 1504 relate to the storagecomponents of devices associated with the devices entities 1512. Thevariable set associated with the storage components entities 1504 is setforth below in Table 45. TABLE 45 VARIABLE SET OF STORAGE COMPONENTSENTITIES 1504 VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPEOPTIONAL DVC_ID Device Number R STOR_COMPNT_ID* Storage Compo- Number Rnent identification number STOR_MEDIA Storage media Character RSTOR_TYPE Storage type Character R STOR_MFG Storage Character OManufacturer STOR_MODEL Storage model Character O STOR_CAP Storagecapacity Character O STOR_DRIVE Storage drive Character R EFF_BEG_DTEffective beginn- Date R ing date EFF_END_DT Effective ending Date Odate

[0208] The storage components entities 1504 relate to the devicesentities 1512 in a many-to-one relationship.

[0209] Bus Components Entities 1506

[0210] The bus components entities 1506 are related to the buscomponents of the devices represented by the devices entities 1512. Thevariable set associated with the bus components entities 1506 is setforth below in Table 46. TABLE 46 VARIABLE SET OF BUS COMPONENTSENTITIES 1506 VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPEOPTIONAL DVC_ID Device identification number Number R BUS_COMPNT_ID* Buscomponent Number R identification number BUS_TYPE Bus type Character RBUS_DVC_ID Bus device identification Character O BUS_DVC_VENDOR Busdevice vendor Character O BUS_DVC_CLASS Bus device class Character OBUS_DVC_VERSION Bus device version Character O BUS_ID Bus identificationCharacter R EFF_BEG_DT Effective beginning date Date R EFF_END_DTEffective ending date Date O

[0211] The bus components entities 1506 relate to the devices entities1512 in a many-to-one relationship.

[0212] Interface Components Entities 1508

[0213] The interface components entities 1508 relate to interfacecomponents contained within interface cards of the devices representedby the devices entities 1512. The variable set associated with theinterface components entities 1508 is set forth below in Table 47. TABLE47 VARIABLE SET OF COMPONENTS ENTITIES 1508 VARIABLE VARIABLE REQUIRED/VARIABLE DEFINITION TYPE OPTIONAL IF_CARD_ID Interface cardidentification Number R number IF_COMPNT_ID* Interface componentidentification Number R number IF_TYPE Interface type Character RHW_ADDR Hardware address Character O IF_SPEED Interface speed CharacterO EFF_BEG_DT Effective beginning date Date R EFF_END_DT Effective endingdate Date O IF_ALIAS Interface alias Character O IF_DESC Interfacedescriptor Character O IF_INDEX Interface index Number O

[0214] The interface components entities 1508 relate to the interfacecards entities 1510 and the interface type entities 1514 in many-to-onerelationships. Also, the interface components interface 1508 relate tothe subinterfaces entities 1520 in a one-to-many relationship.

[0215] Interface Cards Entities 1510

[0216] The interface cards entities 1510 relate to the interface cardscontained within the devices represented by the devices entities 1512.The variable set associated with the interface cards entities 1510 isset forth below in Table 48. TABLE 48 VARIABLE SET OF INTERFACE CARDSENTITIES 1510 VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPEOPTIONAL DVC_ID Device identification number Number R IF_CARD_ID*Interface card identification Number R number CARD_IND Card index numberNumber O CARD_SER_NUM Card serial number Number O SLOT Slot Character OCPU_SPEED CPU processing speed Character O MEM_QUANT Memory quantityCharacter O EFF_BEG_DT Effective beginning date Date R DRAM_MB Amount ofDRAM in MB Number O CONTAINED_BY Contained by Number O

[0217] The interface cards entities 1510 relate to the devices entities1512 in a many-to-one relationship.

[0218] Devices Entities 1512

[0219] The devices entities 1512 relate to the various devices connectedto the network associated with the present invention. Multiple variablesare for defining devices and communication with the network associatedwith the present invention. For example, information such as device andmanufacturer identifications, serial numbers, device types, status, andother similar descriptions are provided for, along with other convenientvariables, such as a flag which indicates whether a device should bemonitored or not. The MONITOR_FLG variable may be used in the future todetermine the level of monitoring that should be performed for eachdevice identified within the device's entities 1512. The variable setassociated with the devices entities 1512 is set forth below in Table49. TABLE 49 VARIABLE SET OF DEVICES ENTITIES 1512 VARIABLE VARIABLEREQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL DVC_ID* Deviceidentification number Number R MID Manufacturer identification CharacterO SERIAL_NUM Serial Number Character O DVC_TYPE Device type Character RSTATUS Device Status Character R DVC_MFG Device Manufacturer Character ODVC_MODEL Device Model Character O CHASSIS_SER_NUM Chassis serial numberCharacter O LOOPBACK_IP Loopback IP address Character O SYS_NAME Systemname Character O SYS_DESC System description Character O SYS_OBJ_IDSystem Object identification Character O SYS_LOC System locationCharacter O SNMPV2C_CAPABLE SNMP v. 2c capability Character OSNMPV3_CAPABLE SNMP v. 3 capability Character O OS_VER OS versionCharacter O EFF_BEG_DT Effective beginning date Date R DVC_DESC Devicedescription Character O DISCOVER_DT Discover date Date R NOTES notesCharacter O SNMP_SYS_LOC SNMP system location Character O MONITOR_FLGMonitor flag Character O

[0220] The device's entities 1512 relates to the memory componentsentities 1502, the storage components entities 1504, the bus componentsentities 1506, the interface cards entities 1510, the device consoleentities 1516, and the CPU components entities 1518 in one-to-manyrelationships. The devices entities 1512 also relate to the deviceauthorizations entities 1416 in a one-to-many relationship 1426, thedevice request classes entities 1404 in a one-to-many relationship 1428,and the device application configuration entities 1414 in a one-to-manyrelationship 1430, all of which entities are illustrated in FIG. 14.Additionally, the devices entities 1512 relate to the virtual IPSentities 1312 in a one-to-many relationship 1330, the conduits entities1306 in a one-to-many relationship 1332, the status entities 1322 in amany-to-one relationship 1324, all of which are illustrated in FIG. 13.Also, the devices entities may optionally be related in a one-to-manyrelationship 1248 to the device roles 1226 of FIG. 12.

[0221] Interface Type Entities 1514

[0222] The interface type entities 1514 relate to the type of interfaceachieved through the interface components represented by the interfacecomponents entities 1508. The variable set associated with the interfacetype entities 1514 is set forth below in Table 50. TABLE 50 VARIABLE SETOF INTERFACE TYPE ENTITIES 1514 VARIABLE VARIABLE REQUIRED/ VARIABLEDEFINITION TYPE OPTIONAL INT_TYPE* Interface type Character RINT_TYPE_DESC Interface type descrip- Character R tion

[0223] The interface type entities 1514 relate to the interfacecomponents entities 1508 in a one-to-many relationship.

[0224] Device Console Entities 1516

[0225] The device console entities 1516 relate to consoles that may beattached to devices represented by the device entities 1512. Theconsoles may be for the convenience of a user in accessing informationcontained within the devices, or by accessing the network by way of thedevices. The variable set associated with the device console entities1516 is set forth below in Table 51. TABLE 51 VARIABLE SET OF DEVICECONSOLE ENTITIES 1516 VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITIONTYPE OPTIONAL DVC_ID Device identification number Number R CONSOLE_IP*Console IP address Character R CONSOLE_HOST_NAME Console host nameCharacter R PORT port number Number O PHONE_NUM Phone number Character OEFF_BEG_DT Effective beginning date Date R

[0226] The device console entities 1516 relate to the device entities1512 in a many-to-one relationship, as previously mentioned.

[0227] CPU Components Entities 1518

[0228] The CPU components entities 1518 relate to the various componentsof the CPUs of the devices which are represented by the device entities1512. The CPU components entities 1518 have a series of variablesassociated therewith indicate information regarding the type of CPU, thespeed, the family, the model, the slot, and other such information,which may be necessary in provisioning servers, to ensure that softwareis installed can be adequately handled by the CPU on a particulardevice. The variable set associated with the CPU components entities1518 is set forth below in Table 52. TABLE 52 VARIABLE SET OF CPUCOMPONENTS ENTITIES 1518 VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITIONTYPE OPTIONAL DVC_ID Device identification number Number RCPU_COMPNT_ID* CPU Component identification Number R number CPU_FAM CPUFamily Character R CPU_SPEED CPU processing speed Character O CPU_VENDCPU vendor Character O CPU_MODEL CPU model Character O CACHE SIZE cachesize Character O CPU_SLOT CPU slot Character R STEPPING CPU versioningCharacter O EFF_BEG_DT Effective beginning date Date R EFF_END_DTEffective ending date Date O STATUS CPU status Character O

[0229] The CPU components entities 1518 relate to the devices entities1512 in a many-to-one relationship, as previously mentioned.

[0230] SUB Interfaces Entities 1520

[0231] The SUB interfaces 1520 relate the interface components of theinterface components entities 1508 with the interface IP addresses ofthe interface IPs entities 1524. These SUB interfaces entities 1520 maybe used with asynchronous transfer mode (ATM) frame relay systems, forexample. The variable set associated with the SUB interfaces entities1520 is set forth below in Table 53. TABLE 53 VARIABLE SET OF SUBINTERFACES ENTITIES 1520 VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITIONTYPE OPTIONAL SUB_IF_ID* SUB interface identification Number R numberIF_COMPNT_ID Interface component identification Number R number CIR_IDCircuit identification number Number O VCI Virtual channel identifierCharacter O VPI Virtual path identifier Character O TX_BNDWDTH Transitbandwidth Character O RX_BNDWDTH Receive bandwidth Character OEFF_BEG_DT Effective beginning date Date R

[0232] The SUB interfaces entities 1320 is related to the interfacecomponents entities 1508 in a many-to-one relationship, and to theinterface IPs 1524 in a one-to-many relationship. The SUB interfacesentities 1520 may also be optionally related to the circuits entities1522 in a many-to-one relationship.

[0233] Circuits Entities 1522

[0234] The circuits entities 1522 may be use to optionally relate to theSUB interfaces entities 1520. These entities 1522 allow for specificidentification of the circuits associated with the SUB interfaces andthe interface components, and the type and description of the circuits.The variable set associated with the circuits entities 1522 is set forthbelow in Table 54. TABLE 54 VARIABLE SET OF CIRCUITS ENTITIES 1522VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL CIR_ID*Circuit identification number Number R CIR_TYPE Circuit type Character RCIR_DESC Circuit description Character O

[0235] The circuits entities 1522 may optionally relate to the SUBinterfaces entities 1520 in a one-to-many relationship.

[0236] Interface IPs Entities 1524

[0237] The interface IPs entities 1524 may be used to relate the SUBinterfaces represented by the SUB interfaces entities 1520 with VIPgroups of the VIP groups entities 1424 shown in FIG. 14. The variableset associated with the interface IPs entities 1524 is set forth belowin Table 55. TABLE 55 VARIABLE SET OF INTERFACE IPS ENTITIES 1524VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL IF_IP_ID*Interface IP identification Number R number IP_ADDRESS IP addressCharacter R SUB_IF_ID SUB interface identification Number R numberNETMASK Net Mask Character O EFF_BEG_DT Effective beginning date Date RPRIMARY_IF Primary interface Character O

[0238] The interface IPs entities 1524 relates to the SUB interfacesentities 1520 in a many-to-one relationship and to the VIP groupsentities 1424 of FIG. 14 in a one-to-many relationship 1432.

[0239] As indicated previously in connection with FIGS. 12-14, variousrelationships 1248, 1330, 1332, 1334, 1426, 1428, 1430, 1432 aredirectly related to entities within the hardware 1108 illustrated inFIG. 15 from these other figures representing the software 1102, theconfiguration 1104, and the monitoring 1106.

[0240] DNS 1110

[0241] The entities illustrated in FIG. 16 are part of the DNS entities1110. The DNS entities 1110 relate to the assignment of DNS domainnames. These entities are related in an entity relationship diagramfashion.

[0242] DNS Configuration Entities 1602

[0243] The DNS configuration entities 1602 allow for the translation ofDNS names to DNS values, and may be used by the business logicassociated with the network of the present invention. These DNS namesand values may be translated into addresses related to various networkhosts. The variable set associated with the DNS configuration entities1602 is set forth below in Table 56. TABLE 56 VARIABLE SET OF DNSCONFIGURATION ENTITIES 1602 VARIABLE VARIABLE REQUIRED/ VARIABLEDEFINITION TYPE OPTIONAL NAME Name Character R VALUE Value Character R

[0244] The DNS configuration entities 1602 are illustrated in FIG. 16 ashaving no direct relationship with any of the other entities illustratedtherein. The values contained within the DNS configuration entities 1602are used by business logic associated with the present invention, whichis able to query the DNS configuration entity 1602 to relate between theentries of the name-value pairer associated with these entities 1602.

[0245] DNS Hosts Entities 1604

[0246] The DNS host entities 1604 relate to DNS hosts associated withthe present invention. The DNS host entities 1604 provide for a uniquemanner in which multiple DNS hosts may be identified. Using multiple DNShosts provided customer with a more efficient DNS service. For example,if a primary DNS host is not able to handle a request within apredefined time, the expire time set on a second DNS may lapse, causingthe secondary DNS to handle the pending request. This is also known as atime to live (TTL). The variable set associated with the DNS hostsentities 1604 are indicated below in Table 57. TABLE 57 VARIABLE SET OFDNS HOSTS ENTITIES 1604 VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITIONTYPE OPTIONAL DNS_HOST_ID* DNS Host identification number Number RDOMAIN_ID Domain identification number Number R DVC_HOST_TYPE Devicehost type Character O HOST_NAME Host name Character R DNS_HOST_DATA DNSHost Data Character R DNS_HOST_TYPE DNS Host type Character R EXPIRETime until expire Number O EFF_BEG_DT Effective beginning date Date RMODIFIED_BY Modified by Character O

[0247] The DNS hosts entities 1604 are related to the DNS domainsentities 1616, and the DNS host types entities 1606 in many-to-onerelationships. The DNS host types entities 1606 in many-to-onerelationships, the DNS hosts entities 1604 may optionally be related tothe device role IP host entities 1308 illustrated in FIG. 3 in aone-to-many relationship 1336.

[0248] DNS Host Types Entities 1606

[0249] The DNS host types entities 1606 indicate the types of DNS hostsassociated with the DNS hosts entities 1604. The variable set associatedwith the DNS hosts types entities 1606 is set forth below in Table 58.TABLE 58 VARIABLE SET OF DNS HOST TYPES ENTITIES 1606 VARIABLE VARIABLEREQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL DNS_HOST_TYPE* DNS Host typeCharacter R DNS_HOST_TYPE_DESC DNS Host type description Character O

[0250] The DNS host types entities 1606 are related to the DNS hostsentities 1604 in a one-to-many relationship.

[0251] DNS ACLs Entities 1608

[0252] The DNS ACLs entities 1608 relate to the access control listsassociated with various DNS. The variable set associated with the DNSACLs entities 1608 is set forth below in Table 59. TABLE 59 VARIABLE SETOF DNS ACLS ENTITIES 1608 VARIABLE VARIABLE REQUIRED/ VARIABLEDEFINITION TYPE OPTIONAL ACL_ID* ACL identification number Number RACL_DESC ACL Description Character O ACL_NAME ACL Name Character R

[0253] The DNS ACLs entities 1608 are related to the DNS ACL entriesentities 1610, the DNS allow transfers entities 1612, and the DNS allowqueries entities 1618 in one-to-many relationships.

[0254] DNS ACL Entries Entities 1610

[0255] The DNS ACL entries entities 1610 relate to the ACL entries forthe DNS. The variable set associated with the DNS ACL entries entities1610 is set forth below in Table 60. TABLE 60 VARIABLE SET OF DNS ACLENTRIES ENTITIES 1610 VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITIONTYPE OPTIONAL ACL_ENTRY_ID ACL entry identification number Number R NETNet Character R MASK Mask Character O ACL_ID ACL identification numberNumber R

[0256] The DNS ACL entries entities are related to the DNS ACLs entities1608 in a many-to-one relationship, as previously mentioned.

[0257] DNS Allow Transfers Entities 1612

[0258] The DNS allow transfers entities 1612 is used to determinewhether or not DNS transfers may take place between given DNs domainsaccording to the ACLs of the DNS ACLs entities 1608. The variable setassociated with the DNS allow transfers entities 1612 is set forth belowin Table 61. TABLE 61 VARIABLE SET OF DNS ALLOW TRANSFERS ENTITIES 1612VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL DOMAIN_ID*Domain identifi- Number R cation number ACL_ID* ACL identificationNumber R number TRANSFER_DESC Transfer description Character OEFF_BEG_DT Effective beginning Date R date

[0259] The DNS allow transfers entities 1612 are related to the DNS ACLsentities 1608 and the DNS domains entities 1616 in many-to-onerelationships.

[0260] DNS Domain Types Entities 1614

[0261] The DNS domain types entities 1614 relate to the types of DNSdomains associated with the DNS domain entities 1616. The variable setassociated with the DNS domain types entities 1614 is set forth below inTable 62. TABLE 62 VARIABLE SET OF DNS DOMAIN TYPES ENTITIES 1614VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONALDNS_DOMAIN_TYPE* DNS Domain Character R type DOMAIN_TYPE_DESC Domaintype Character O description

[0262] The DNS domain types entities 1614 relate to the DNS domainentities 1614 in a one-to-many relationship.

[0263] DNS Domain Entities 1616

[0264] The DNS domain entities 1616 relate to the various DNS domainsassociated with devices connected to the network of the presentinvention. The variables associated with the DNS domain entities 1616relate to domains maintained by a host, in accordance with an embodimentof the present invention. A DNS term “SOA” or start of authority, isused to define several variables. For example, a serial variable isgiven, which indicates the revision number of the DNS file used to lookup domain names. A refresh rate is set, which may be adjusted accordingto the speed with which the DNS file is updated on a primary DNS, tocontrol how often a secondary DNS updates its DNS file. Also, an expiretime, which indicates the time that a secondary DNS will wait untiltaking over a domain name request may be set. A minimum cash time for aparticular entry, and a name server are provided for variables of theDNS domain entity 1616. Also, an admnistrative contact e-mail address isprovided for each domain. A retry variable may also be provided wherebyafter a certain amount of time, or a certain amount of attempts, a DNSmust assume the role of the primary DNS. A rebuilt date is given,whereby the system, or agents of the system, know that if this date ischanged, then the server needs to rebuild. One of the advantages of thepresent invention is that DNS entries are not created in the DNS server,but rather are contained within a separate database with specific formsthat define acceptable DNS entries. The variable set associated with theDNS domain entities 1616 is set forth below in Table 63. TABLE 63VARIABLE SET OF DNS DOMAINS ENTITIES 1616 VARIABLE REQUIRED/ VARIABLEVARIABLE DEFINITION TYPE OPTIONAL DOMAIN_ID* Domain identificationnumber Number R DNS_DOMAIN_TYPE DNS Domain type Character R DOMAIN_NAMEDomain name Character R SOA_SERIAL Start of authority serial Character RSOA_REFRESH Start of authority refresh Character R SOA_EXPIRE Start ofauthority expire Character R SOA_MIN Start of authority minimumCharacter R SOA_NS Start of authority name server Character R SOA_EMAILStart of authority e-mail contact Character R SOA_RETRY Start ofauthority retry times Character R MOD_DT Date modified Date O MOD_BYModified by Character O REBUILD_DT Rebuild date Date O ACCT_ID Accountidentification number Number O EFF_BEG_DT Effective Beginning date DateR

[0265] A DNS domain entities 1616 are related in many-to-onerelationships with the DNS domain types entities 1614, as previouslydiscussed, and the DNS domain masters entities 1620. Additionally, theDNS domains entities 1616 relate to the DNS hosts entities 1604, the DNSallow transfers entities 1612, and the DNS queries entities 1618 inone-to-many relationships. Also, the DNS domains entities 1616 mayoptionally relate to the accounts entities 1702 of the network entities1112, illustrated in FIG. 17, in a many-to-one relationship 1624.

[0266] DNS Allow Queries Entities 1618

[0267] The DNS allow queries entities 1618 assist in determining whetheror not queries may be allowed between certain DNS domains, according tothe DNs ACLs of the DNS ACLs entities 1608. The variable set associatedwith the DNS allow queries entities 1618 is set forth below in Table 64.TABLE 64 VARIABLE SET OF DNS ALLOW QUERIES ENTITIES 1618 VARIABLEVARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL DOMAIN_ID* Domainidentification Number R number ACL_ID* ACL identification Number Rnumber QUERY_DESC Query description Character O EFF_BEG_DT Effectivebeginning date Date R

[0268] The DNS allow queries entities 1618 related to the DNS ACLsentities 1608 and the DNS domains entities 1616 in many-to-onerelationships.

[0269] DNS Domain Masters Entities 1620

[0270] The DNS domain masters entities 1620 relates the DNS domain ofthe DNS domain entities 1616 with the DNS master IPs of the DNS masterIPs entities 1622. The variable set associated with the DNS domainmasters entities 1620 is set forth below in Table 65. TABLE 65 VARIABLESET OF DNS DOMAIN MASTERS ENTITIES 1620 VARIABLE VARIABLE REQUIRED/VARIABLE DEFINITION TYPE OPTIONAL DOMAIN_ID* Domain identifi- Number Rcation number DNS_MASTER_IP_ID DNS Master IP Number R identificationnumber EFF_BEG_DT Effective Date R beginning date

[0271] The DNS domain masters entities 1620 are related to the DNSdomains entities 1616 in a one-to-many relationship, and to the DNSmaster IPs entities 1622 in a many-to-one relationship.

[0272] DNS Master IPs Entities 1622

[0273] The DNS master IPs entities 1622 relate to the DNS master IPaddresses of the devices on the network associated with the presentinvention. The variable set associated with the DNS master IPs entities1622 is set forth below in Table 66. TABLE 66 VARIABLE SET OF DNS MASTERIPS ENTITIES 1622 VARIABLE REQUIRED/ VARIABLE VARIABLE DEFINITION TYPEOPTIONAL DNS_MASTER_IP_ID* DNS master IP identification Number R numberIP_ADDR IP address Character R MASTER_DESC Master description CharacterO

[0274] The DNS master IPs entities 1622 relate to the DNS domain mastersentities 1620 in a one-to-many relationship.

[0275] The relationship 1336 is between the DNS host entities 1604 andan entity illustrated in FIG. 13, within the configuration entities1104. Additionally, the relationship 1624 relates the DNS domainentities 1616 with an entity in FIG. 17 of the network entities 1112.

[0276] Network 1112

[0277] The entities illustrated in an entity relationship diagram inFIG. 17 form part of the network entities 1112. The Network entities1112 define various aspects of the network with which the presentinvention may be used. Each of these entities is described below.

[0278] Accounts Entities 1702

[0279] The accounts entities 1702 relate directly to customer networkaccounts. The variable set associated with the accounts entities 1702 isset forth below in Table 67. TABLE 67 VARIABLE SET OF ACCOUNTS ENTITIES1702 VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONALACCT_ID* Account identification Number R number ACCT_NAME Account nameCharacter R DISPLAY_NAME Display name Character O STATUS StatusCharacter R LOG_HOST Host name for web Character O logs AUTH_DOMAINAuthentication Character O Domain

[0280] The accounts entities 1702 relate to the account configurationentities 1704 and the customer tiers entities 1708 in one-to-manyrelationships. Additionally, as previously indicated, the accountsentities 1702 relate to the units entities 1202, the packages entities1240, and the account roles entities 1224 of FIG. 12, in one-to-manyrelationships. Also, the accounts entities 1702 may optionally berelated in a one-to-many relationship 1624 with the DNS hosts entities1604 of FIG. 16.

[0281] Account Configuration Entities 1704

[0282] The account configuration entities 1704 relate to theconfiguration of the accounts associated with the account entities 1702.The variable set associated with the account configuration entities 1704is set forth below in Table 68. TABLE 68 VARIABLE SET OF ACCOUNTCONFIGURATION ENTITIES 1704 VARIABLE VARIABLE REQUIRED/ VARIABLEDEFINITION TYPE OPTIONAL ACCT_10 Account identifi- Number R cationnumber KEY_NAME Key name Character R ACCT_CONFIG_ID* Account Number Rconfiguration identification number

[0283] The account configuration entities 1704 relate to the accountsentities 1702 in a many-to-one relationship.

[0284] Account Configuration Values Entities 1706

[0285] The account configuration values entities 1706 indicate variousvalues associated with the configuration of various accounts related tothe account configuration entities 1704. The variable set associatedwith the account configuration values entities 1706 is set forth belowin Table 69. TABLE 69 VARIABLE SET OF ACCOUNT CONFIGURATION VALUESENTITIES 1706 VARIABLE REQUIRED/ VARIABLE VARIABLE DEFINITION TYPEOPTIONAL ACCT_CONFIG_ID* Account configuration Number R identificationnumber CONFIG_VALUE Configuration value Character R TEXT_ORDER* TextOrder of configuration value Number R chunk

[0286] The account configuration values entities 1706 relate to theaccount configuration entities 1704 in many-to-one relationships.

[0287] Customer Tiers Entities 1708

[0288] The customer tiers entities 1708 relate to various customertiers, whereby customers may receive, and have access to, specificservices associated with specific tiers. For example, a specificcustomer may desire to distribute his webhosting servers to multipledata centers. Therefore, the variables associated with the Customertiers entities 1708 may indicate a data center or identification number,which informs one as to the location of the customer tier represented bythe customer tier entity 1708. Also, a flag may be set to indicatewhether or not monitoring is desired or needed within that particularnetwork. The variable set associated with the customer tiers entities1708 is illustrated below in Table 70. TABLE 70 VARIABLE SET OF CUSTOMERTIERS ENTITIES 1708 VARIABLE REQUIRED/ VARIABLE VARIABLE DEFINITION TYPEOPTIONAL CUST_TIER_ID* Customer tier identification Number R numberACCT_ID Account identification number Number R DATA_CENTER_ID Datacenter identification number Number R MONITOR_FLG Monitor Flag CharacterO

[0289] The customer tiers entities 1708 relate to the accounts entities1702, as previously discussed, and the data centers entities 1716, inmany-to-one relationships. The customer tiers entities 1708 also relateto the VLAM compartments entities 1714 in a one-to-many relationship.

[0290] Data Center Configuration Values Entities 1710

[0291] The data center configuration values entities 1710 relate to theconfiguration values associated with the data center configuration,which are associated with the data center configuration entities 1712.The variables associated with the data center configuration valuesentities 1710 are the value portion of a name-value pair relating to thedata center. Thus, a configuration value, associated with such aname-value pair is given by the data center configuration valuesentities 1710. The variable set associated with the data centerconfiguration values entities 1710 is set forth below in Table 71. TABLE71 VARIABLE SET OF DATA CENTER CONFIGURATION VALUES ENTITIES 1710VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONALDATA_CENTER_CONFIG_ID Data center configuration Number R *identification number CONFIG_VALUE Configuration values Character RTEXT_ORDER* Text Order Number R

[0292] The data center configuration values entities 1710 relate to thedata center configuration entities 1712 in a many-to-one relationship.

[0293] Data Center Configuration Entities 1712

[0294] The data center configuration entities 1712 relate to theconfiguration of specific data centers that house specific servers, andother network equipment associated with services of the various customertiers. The data center configuration entities 1712 form the name portionof the name-value pair associated with the data center configurationvalues entities 1710. Thus, a key name, which serves as the name in thename-value pair. The variable set associated with the data centerconfiguration entities 1712 is set forth below in Table 72. TABLE 72VARIABLE SET OF DATA CENTER CONFIGURATION ENTITIES 1712 VARIABLEVARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL DATA_CENTER_ID DataCenter identification number Number R KEY_NAME Key Name Character RDATA_CENTER_ID* Data center identification number Number R

[0295] The data center configuration entities 1712 relate to the datacenters entities 1716 in a many-to-one relationship.

[0296] VLAN Compartments Entities 1714

[0297] The VLAN compartments entities 1714 are used to relate thecustomer tiers of the customer tiers entities 1708 with various VLAN IPpools of the VLAN IP pools entities 1722. The variable set associatedwith the VLAN compartments entities 1714 is set forth below in Table 73.TABLE 73 VARIABLE SET OF VLAN COMPARTMENTS ENTITIES 1714 VARIABLEVARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL VLAN_COMP_ID* VLANCompartment Number R identification number CUST_TIER_ID Customer tieridentification Number R number COMP_NAME Compartment name Character RSTATUS VLAN status Character R ASSIGN_DT Assign Date Date O

[0298] The VLAN compartments entities relate to the customer tiersentities 708 in a many-to-one relationship as previously discussed,also, the VLAN compartments entities 1714 relate to the VLAN IP pools1722 in a one-to-many relationship.

[0299] Data Centers Entities 1716

[0300] The data centers entities 1716 relate to various data centers inwhich server equipment, and other network devices are housed. The datacenters entities 1716 contain variables that describe various aspects ofthe data centers to which these entities 1716 relate. For example, a DNSsequence is given, which is a sequential number, that is used in analgorithm to provide a next random DNS name. Generally, the DNS namesused by each of the data center entitties 1716 contain the name of thedata center therein, with which they most closely relate, and thereforethere is no conflict of DNS names between data centers. Additionally, amask may be given that indicates how a particular server may be locatedby way of parsing the location of its rack. The variable set associatedwith the data centers entities 1716 is set forth below in Table 74.TABLE 74 VARIABLE SET OF DATA CENTERS ENTITIES 1716 VARIABLE VARIABLEREQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL DATA_CENTER_ID* Data Centeridentification number Number R DATA_CENTER_NAME Data Center nameCharacter R DNS_SUBDOMAIN DNS sub-domain Character O DNS_SEQUENCE DNSsequence for name Character O generation DISPLAY_NAME DNS name displayedCharacter O RACK_LOCATION_MASK Rack location mask Character O

[0301] The data center entities 1716 relate to the customer tiersentities 1708 and the data center configuration entities 1712 inone-to-many relationships.

[0302] Site Configuration Entities 1718

[0303] The site configuration entities 1718 relate to a configuration ofvarious data center sites. The site configuration entities 1718 is aname-value pairer that may be used for any convenient purpose, such asaccounting, data center, maintenance, device configuration, and thelike. This relationship table may be used by way of business logicassociated with the present invention, or with agents residing onparticular devices connected to the network. The variable set associatedwith the site configuration entities 1718 is set forth below in Table75. TABLE 75 VARIABLE SET OF SITE CONFIGURATION ENTITIES 1718 VARIABLEVARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL PARAM_NAME*Parameter name Character R PARAM_VALUE Parameter value Character O

[0304] The site configuration entities 1718 illustrated in FIG. 17 isnot directly related to the entities illustrated in the same figure.However, the values contained therein may relate to other entitiesillustrated in FIG. 17, and may be used by business logic associatedwith the present invention, or by intelligent agents of the system.

[0305] Device Pool VLAN Platforms Entities 1720

[0306] The device pool VLAN platforms entities 1720 relate to platformsof the device pool within the VLAN. That is, the device pool VLANplatforms entities 1720 is used to relate a base OS to the VLAN withwhich a particular device is associated. The variable set associatedwith the device pool VLAN platforms entities 1720 is set forth below inTable 76. TABLE 76 VARIABLE SET OF DEVICE POOL VLAN PLATFORMS ENTITIES1720 VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONALVLAN_POOL_ID VLAN pool identification number Number R PLATFORM_IDPlatform identification number Number R

[0307] The device pool VLAN platforms entities 1720 relate to the VLANIP pools entities in a many-to-one relationship.

[0308] VLAN IP pools Entities 1722

[0309] The VLAN IP pools entities 1722 relate to IP pools of the VLAN,which are associated with the VLAN compartments of the customer tiersthat are associated with the customer tiers entities 1708. The variableset associated with the VLAN IP pools entities 1722 is set forth belowin Table 77. TABLE 77 VARIABLE SET OF VLAN IP POOLS ENTITIES 1722VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONALVLAN_POOL_ID* VLAN pool identification number Number R POOL_TYPE Pooltype Character R VLAN_POOL_NAME VLAN pool name Character R GATEWAY_IPGateway IP address Character R NETMASK_IP Network IP address Character RBROADCAST_IP Broadcast IP address Character R SUBNET Subnet Character RDHCP_GATEWAY DHCP Gateway Character O NIS_DOMAIN Network informationservices Character O domain YP_SERVER Yellow pages server Character ONTP_SERVER Network time protocol server Character O DOMAIN DomainCharacter O SUB_TYPE Network sub-type Character R POOL_DESC Pooldescription Character O VLAN_NAME VLAN name Character O VLAN_COMP_IDVLAN component identification Number R number CIDR Classlessinter-domain routing Number R

[0310] The VLAN IP pools entities 1722 relate to the VLAN compartments1714 in a many to one relationship, and to the device pool VLANplatforms 1720 in a one to many relationship, as previously described.Also, the VLAN IP pools entities 1722 relate to the IP addressesentities 1730 in a one to many relationship, and the VLAN subtypeentities 1728 in a many to one relationship.

[0311] Data Center Tiers Entities 1724

[0312] The data center tiers entities 1724 relate to a specific group ofservices, or tiers, associated with the data centers, which arerepresented by the data centers entities 1716. The variable setassociated with the data center tiers entities 1724 is set forth belowin Table 78. TABLE 78 VARIABLE SET OF DATA CENTER TIERS ENTITIES 1724VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL DCT_ID*Data center tier identification Number R number DATA_CENTER_ID Datacenter identification number Number R APP_ROLE_ID Application roleidentification Number R number TIER_NAME Tier name Character R

[0313] The data center tiers entities 1724 relate to the data centersentities 1716 in a many to one relationship, as previously explained.The data center tiers entities 1724 also relate to the application rulesentities 1236, illustrated in FIG. 12, in a many to one relationship1244.

[0314] VLAN Pool Type Entities 1726

[0315] The VLAN pool type entities 1726 define the various valid typesof VLANs for use on the network associated with the present invention.The variable set associated with the VLAN pool type entities is setforth below in Table 79. TABLE 79 VARIABLE SET OF VLAN POOL TYPEENTITIES 1726 VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPEOPTIONAL POOL_TYPE* Pool type Character R POOL_TYPE_DESC Pool typedescrip- Character O tion GEN_DHCP Generate DHCP Character R

[0316] The VLAN pool type entities 1726 are not illustrated as directlyrelating to any entities within FIG. 17. However, the variables storedwithin the VLAN pool type entities 1726 are used by the logic associatedwith the present invention for determining the valid types of VLANs thatmay be used with the present invention.

[0317] VLAN SUB Type Entities 1728

[0318] The VLAN SUB type entities 1728 are used to relate to the VLAN IPpools, which are represented by the VLAN IP pools entities 1722. TheVLAN SUB type entities 1728 define valid VLAN types, or types in whichVLANs may be used. Some examples might include development, qualityassurance, production, and the like. The VLAN subtype entities 1728relate to the VLAN IP pools 1722 in a one to many relationship, aspreviously described. The variable set of the VLAN SUB type entities1728 is shown below in Table 80. TABLE 80 VARIABLE SET OF VLAN SUB TYPEENTITIES 1728 VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPEOPTIONAL SUB_TYPE* Type of VLAN Character R SUB_TYPE_DESC VLAN typeCharacter O description

[0319] IP Address Entities 1730

[0320] The IP address entities 1730 relate to the IP addresses of thenetwork associated with the present invention. The variable setassociated with the IP address entities 1730 is shown below in Table 81.TABLE 81 VARIABLE SET OF IP ADDRESSES ENTITIES 1730 VARIABLE VARIABLEREQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL IP_ADDRESS* IP AddressCharacter R VLAN_POOL_ID VLAN Pool identifi- Number R cation numberSTATUS Device status Character R GEN_HOST_NAME Character O

[0321] The IP address entities 1730 relate to the VLAN IP pools 1722 ina many to one relationship, as previously discussed. Also, the IPaddresses entities 1730 relate to the virtual IPs entities 1312, and thedevice role IP host entities 1308 by one to many relationships, 1338,1340, respectively.

[0322] VLAN CIDR Reserve Entities 1732

[0323] The VLAN CIDR reserve entities 1732 is related to the classlessinter-domain routing (CIDR) of the VLAN associated with the presentinvention. The VLAN CIDR reserve entities indicates the CIDR number usedfor the network, and the number of addresses that are reserved and thatare available for dynamic assignment as DHCP generated addresses. Thevariable set associated with the VLAN CIDR entities 1732 is set forthbelow in Table 82. TABLE 82 VARIABLE SET OF VLAN CIDR RESERVE ENTITIES1732 VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL CIDRCIDR Number R NTWK_RSV_CNT Network reserve Number R count DHCP_RSV_CNTDHCP reserve count Number R

[0324] The VLAN CIDR reserve entities 1732 is illustrated in FIG. 17 asnot directly relating to any of the other entities. These entities 1732are used by the business logic of the present invention to determine thenumber of network addresses that may be reserved, and the number thatmay be generated as DHCP generated addresses for a given network orsubnetwork.

[0325] Queues 1114

[0326] The entities illustrated in the entity relationship diagram ofFIG. 18 form the queues entities 1114. These entities are described indetail below. These entities are not directly related to the entities ofthe rest of the data model 1100 shown in FIG. 11 but rather are used byagents of specific devices connected to the network in performingvarious tasks. These tasks are represented in queues, which may beexecuted in a specific, given order.

[0327] Agent Queues Entities 1802

[0328] The agent queues entities 1802 queues entities are essentially alist of tasks to be performed by an intelligent agent operating on adevice connected to the network, which is associated with the presentinvention. The variable set of agent queues entities 1802 is shown belowin Table 83. TABLE 83 VARIABLE SET OF AGENT QUEUES ENTITIES 1802VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONALAGENT_QUEUE_ID* Agent Queue identification Number R number DVC_ID Deviceidentification number Number R AGENT_QUEUE_NAME Agent Queue NameCharacter R ACTIVE Active Character R STATE State Character RHALT_ON_ERROR Halton error Character R PREDICATED_ID Pedicatedidentification number Number O IP_ADDRESS IP address Character RMODIFIED_DT Date modified Date O CREATE_DT Date created Date RFIRST_POKE_DT Date of first poke Date O

[0329] The agent queues entities 1802 is illustrated as having a one tomany relationship with the agent queue commands entities 1804. The agentqueues entities 1802 may also have an optional one to many relationshipwith other agent queues, as illustrated by the broken line in FIG. 18.

[0330] Agent Queue Commands Entities 1804

[0331] The agent queue commands entities 1804 serves to relate the agentqueues entities 1802 with specific agent commands and agent commandoutputs. The variable set of agent queue commands entities 1804 is shownbelow in Table 84. TABLE 84 VARIABLE SET OF AGENT QUEUE COMMANDSENTITIES 1804 VARIABLE REQUIRED/ VARIABLE VARIABLE DEFINITION TYPEOPTIONAL AGENT_QUEUE_COM_ID* Agent Queue Command Number R identificationnumber AGENT_QUEUE_ID Agent Queue identification Number R numberAGENT_COM_ID Agent Command identification Number R number COM_ORDERCommand Order Number R ACTIVE Agent Active Character R STATE Agent StateCharacter R START_TIME Start time Date O END_TIME End time Date O

[0332] The agent queue commands entities 1804 are related to the agentqueues entities 1802, as previously discussed, and the agent commands1808 in many to one relationships. Also, the agent queue commandsentities 1804 are related to the agent command output entities 1806 in aone to many relationship.

[0333] Agent Command Output Entities 1806

[0334] The agent command output entities 1806 relate to the output ofspecific commands to agents of the present invention. The variable setof agent command output entities 1806 is shown below in Table 85. TABLE85 VARIABLE SET OF AGENT COMMAND OUTPUT ENTITIES 1806 VARIABLE REQUIRED/VARIABLE VARIABLE DEFINITION TYPE OPTIONAL AGENT_QUEUE_COM_ID* AgentQueue Command Number R identification number TEXT_ORDER* Text orderNumber R OUTPUT_TEXT Output text Character R CREATE_DT Date created DateR

[0335] The agent command output entities 1806 relate to the agent queuecommands entities 1804 in a many to one relationship.

[0336] Agent Commands Entities 1808

[0337] The agent commands entities 1808 represent specific commands tobe executed by agents associated with the present invention. Thevariable set of agent commands entities 1808 is shown below in Table 86.TABLE 86 VARIABLE SET OF AGENT COMMANDS ENTITIES 1808 VARIABLE VARIABLEREQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL AGENT_COM_ID* Agent commandNumber R identification number COM_TYPE Command type Character RCOM_NAME Command name Character O EFF_BEG_DT Effective beginning Date Rdate EFF_END_DT Effective ending Date O date

[0338] The agent commands entities 1808 relate to the agent queuecommands entities 1804, as previously indicated, and the agent commandtext entities 1810, in one to many relationships.

[0339] Agent Command Text Entities 1810

[0340] The agent command text entities 1810 represents specific textassociated with the agent commands, which are represented by the agentcommand entities 1808. Additionally, an order of the text may be given,thereby allowing the agent to determine the order of the text to beexecuted. The variable set of agent command text entities 1810 is shownbelow in Table 87. TABLE 87 VARIABLE SET OF AGENT COMMAND TEXT ENTITIES1810 VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONALAGENT_COM_ID* Agent Command Number R identification number COM_TEXTCommand text Character R TEXT_ORDER* Text order Number R

[0341] The agent command text entities 1810 relate to the agent commandsentities 1808 in a many to one relationship.

[0342] Agent Queue Mutex Entities 1812

[0343] The agent queue mutex entities 1812 serves as a locking device,which signals to an agent at a particular device is currently busy, andprevents the agent from executing a second queue on that device untilthe device is not busy. The variable set of agent queue mutex entities1812 is shown below in Table 88. TABLE 88 VARIABLE SET OF AGENT QUEUEMUTEX ENTITIES 1812 VARIABLE REQUIRED/ VARIABLE VARIABLE DEFINITION TYPEOPTIONAL DVC_ID* Device identification number Number R

[0344] The agent queue mutex entities 1812 do not relate directly to anyof the entities illustrated in FIG. 18, but rather are either queried bythe agents with which they are associated, or broadcast information tothose agents.

[0345] Agent Command Mutex Entities 1814

[0346] The agent command mutex entities 1814 serve as a locking devicewhereby only a single agent queue may be executed by the agent at anygiven time. This prevents an agent from attempting to accomplish morethan one task at a single time. The variable set of agent command mutexentities 1814 is shown below in Table 89. TABLE 89 VARIABLE SET OF AGENTCOMMAND MUTEX ENTITIES 1814 VARIABLE VARIABLE REQUIRED/ VARIABLEDEFINITION TYPE OPTIONAL AGENT_QUEUE_ID Agent Queue iden- Number Rtification number

[0347] The agent command mutex entities 1814 do not relate directly toany of the entities illustrated in FIG. 18, but rather are eitherqueried by the agents with which they are associated, or broadcastinformation to those agents.

[0348] The foregoing description has been provided in the context of onedata model used in connection with one provisioning network that may beused to control devices at one data center. It will be appreciated thatsuch a network can be part of a larger network which controls devices atseveral data centers. The data model entities would merely need to beexpanded to include networks located offsite. Hence, if an entity hasits website infrastructure apportioned over several data centers, theprovisioning operations can be coordinated amongst the various centersby using the data model of the present invention.

[0349] From the foregoing, therefore, it can be seen that the presentinvention provides a data model for use in system for the automatedprovisioning of devices which constitute the infrastructure of awebsite, such as servers. Two significant advantages provided by thedata model are flexibility and the repeatability of the results that areobtained. The flexibility permits the varied needs of different websitesto be readily accommodated, and thereby avoids the limitation of havingto configure the architecture of every site the same way. Therepeatability ensures that every server will have the proper set ofsoftware components once it has been provisioned, and thereby be readyto operate immediately. In addition to these features, the automatedprovisioning that is provided through this system achieves a significanttime savings, enabling the entire process to be accomplished insubstantially less than one hour for each device.

[0350] It will be appreciated by those of ordinary skill in the art thatthe present invention can be embodied in other forms without departingfrom the spirit or essential characteristics thereof. For instance,while an exemplary embodiment of the invention has been described in thecontext provisioning website servers in a data center, it will beappreciated that the principles underlying the invention can be appliedin any environment where computing devices need to be configured and/orupdated on a relatively large scale. The foregoing description istherefore considered to be illustrative, and not restrictive. The scopeof the invention is indicated by the following claims, and all changesthat come within the meaning and range of equivalents are thereforeintended to be embraced therein.

What is claimed is:
 1. A hardware data model for relating hardwaredevices connected to a computer network with various device componentsand interfaces, and to monitoring, configuration, and software elementsoperating on the network, comprising: devices entities that representdevices operating on a computer network; a plurality of componentsentities that represent various components of each of the devicesrepresented by said devices entities; and a plurality of interfaceentities that represent various interface elements of the devicesrepresented by said devices entities.
 2. The hardware data model ofclaim 1, wherein said plurality of components entities are picked fromthe group consisting of: memory components entities; storage componentsentities; bus components entities; interface components entities;interface cards entities; device console entities; and CPU componentsentities.
 3. The hardware data model of claim 1, wherein said pluralityof interface entities are selected group consisting of: interface typeentities; subinterfaces entities; interface IPs entities; and circuitsentities.
 4. The hardware data model of claim 1, wherein said pluralityof components entities are related to said devices entities by way ofmay-to-one relationships.
 5. The hardware data model of claim 1, whereinsaid devices entities are related to a plurality of monitoring entitiesthat represent a plurality of monitoring components for monitoring thedevices represented by said devices entities.
 6. The hardware data modelof claim 1, wherein said devices entities are related to a plurality ofconfiguration entities that represent the configuration of the networkto which the devices represented by the devices entities are connected.7. The hardware data model of claim 1, wherein said devices entities areoptionally related to a plurality of software entities that mayrepresent the software contained on the devices represented by saiddevices entities.
 8. A hardware data model for relating hardware objectsof a computer network to other hardware objects, and for expressing thehardware objects of a computer network in a form accessible by othernetwork components, comprising: devices entities; a plurality ofcomponents entities; and a plurality of interface entities; wherein saiddevices entities represent a plurality of hardware devices connected tothe computer network; wherein said components entities comprise avariety of components entities that represent a variety of components ofthe devices represented by said devices entities; and wherein theinterface entities represent various interfaces used by the devicesrepresented by said devices entities.
 9. A computer readable set ofinstructions residing on a computer-readable medium that produces ahardware data model comprising: devices entities; a plurality ofcomponents entities; and a plurality of interface entities; wherein saiddevices entities represent a plurality of hardware devices connected tothe computer network; wherein said components entities comprise avariety of components entities that represent a variety of components ofthe devices represented by said devices entities; and wherein theinterface entities represent various interfaces used by the devicesrepresented by said devices entities.
 10. A hardware data model forcharacterizing the interaction of all hardware elements of a computernetwork, comprising: a plurality of memory components entities; aplurality of storage components entities; a plurality of bus componentsentities; a plurality of interface components entities; a plurality ofinterface cards entities; a plurality of devices entities; a pluralityof interface type entities; a plurality of device console entities; aplurality of CPU components entities; a plurality of SUB interfacesentities; a plurality of circuits entities; and a plurality of interfaceIPs entities.
 11. The data model of claim 10, wherein said memorycomponents entities represent memory components, and wherein said memorycomponents entities relate to said devices entities by a many-to-onerelationship.
 12. The data model of claim 10, wherein said storagecomponents entities represent storage components, and wherein saidmemory components entities relate to said devices entities by amany-to-one relationship.
 13. The data model of claim 10, wherein saidbus components entities represent storage components, and wherein saidbus components entities relate to said devices entities by a many-to-onerelationship.
 14. The data model of claim 10, wherein said interfacecomponents entities represent interface components, and wherein saidinterface components entities relate to: said interface cards entitiesby a many-to-one relationship; said interface type entities by amany-to-one relationship; and said SUB interfaces entities by aone-to-many relationship.
 15. The data model of claim 10, wherein saidinterface cards entities represent interface cards for hardware devices,and wherein said interface cards entities relate to said devicesentities by a many-to-one relationship.
 16. The data model of claim 10,wherein said devices entities represent hardware devices connected tothe network, and wherein said devices entities relate to: said memorycomponents entities by a one-to-many relationship; said storagecomponents entities by a one-to-many relationship; said bus componentsentities by a one-to-many relationship; said interface cards entities bya one-to-many relationship; said device console entities by aone-to-many relationship; said CPU components entities by a one-to-manyrelationship; a plurality of monitoring components by at least oneone-to-many relationship; and a plurality of configuration components byat least one one-to-many relationship and a many-to-one relationship.17. The data model of claim 10, wherein said interface type entitiesrepresent valid types of interfaces, and wherein said interface typeentities relate to said interface components by a one-to-manyrelationship.
 18. The data model of claim 10, wherein said deviceconsole entities represent a device console, whereby a user may accessdevices represented by said devices entities, and wherein said deviceconsole entities relate to said devices entities by a many-to-onerelationship.
 19. The data model of claim 10, wherein said CPUcomponents entities represent hardware CPU components, and wherein saidCPU components entities relate to said devices entities by a many-to-onerelationship.
 20. The data model of claim 10, wherein said SUBinterfaces entities represent virtual local area network (VLAN)interfaces between interface components represented by said interfacecomponents entities and interface IPs represented by said interface IPs,and wherein said SUB interfaces entities relate to: said interfacecomponents entities by a many-to-one relationship; and said interfaceIPs entities by a one-to-many relationship.
 21. The data model of claim10, wherein said circuits entities represent specific hardware circuits,and wherein said circuits entities relates to said SUB interfacesentities by an optional one-to-many relationship.
 22. The data model ofclaim 10, wherein said interface IPs entities represents actualinterface IP addresses associated with hardware devices, and whereinsaid interface IPs entities relate to: a plurality of monitoringcomponents by a one-to-many relationship; and said SUB interfacesentities by a many-to-one relationship.